美文网首页
cmake 学习

cmake 学习

作者: 众少成多积小致巨 | 来源:发表于2019-07-11 17:02 被阅读0次

1、概论

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt

2、使用

2.1 可执行文件

set(SRC_LIST first.cpp):设置变量

add_executable(first ${SRC_LIST}):设置编译成可执行文件,文件名字和依赖的源文件

cmake中所有与路径有关的最好用全路径(有些使用相对路径有问题)

2.2 动态库

生成动态库

add_library(third SHARED main.cpp):设置编译动态库,动态库名字(实际库名lib+这个名字+.so)和依赖源文件

SHARED:动态库

STATIC:静态库,已经不用了吧?

导入动态库

add_library(forth SHARED IMPORTED)

set_target_properties(forth PROPERTIES IMPORTED_LOCATION ${MY_LIBS}/libforth.so)首先指定库的名字,库的类型,导入;然后指出动态库的库存放位置

还有另外一种导入方法:

link_directories(${CMAKE_SOURCE_DIR}/libs):指定动态链接库的位置

2.3 其它常用方法

add_subdirectory(src build):设置源文件路径、编译结果文件路径

include_directories(${CMAKE_SOURCE_DIR}/src/include):设置自己的头文件路径

target_link_libraries(five forth):链接动态库

3、常规编译

cmake . 

make

4、特定平台编译

特定平台编译,其实我就想说的是android ndk项目需要那些库;

其实这涉及到一些名词:交叉编译,编译工具链;简单来说,

交叉编译:编译平台,和使用平台不一致;由于使用平台可使用空间的限制,导致自身平台不能编译,这就需要交叉编译

编译工具链:在编译平台生成特定平台的一些工具;与特定平台有关

具体编译情况分析:见官网android编译

github一步一步学习项目

相关文章

  • cmake学习笔记6-catkin的CmakeList.txt讲

    引用cmake学习笔记-cmakelist.txt创建项目示例cmake的介绍和使用 Cmake实践推荐cmake...

  • CMake学习

    CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用。 本文目录如下: [1、CMake介绍] [...

  • 教程

    通过例子学习CMake[https://sfumecjf.github.io/cmake-examples-Chi...

  • CMake学习

    CMake学习 参考自《Cmake Practice --Cjacker》 基本语法规则 变量的引用 变量使用${...

  • 学习CMake(一)

    开篇立意,这个系列是为了让我能够更快更好的学习CMake这个工具,学习的资料源于cmake-bulidsystem...

  • CMake学习小结--变量

    CMake学习小结 参考资料 CGold的Cmake教程 -- 这个教程很新: https://cgold.rea...

  • 学习cmake

    make cmake是为了支持make的跨平台而出现的。因此,我们首先学习make,可以看这里。 cmake ma...

  • CMake学习

    目录 什么是CMake? linux平台安装CMake CMake的helloworld 1. 什么是CMake?...

  • 学习 cmake

    打包工具 cmake brazel qmake 在 c++圈是比较流行的几款最近学习主流的cmake首先在使用c...

  • CMake学习

    前言:最近在学习NDK时,一些学习资料的项目都是在eclipse上写的,这些项目都是基于NDK构建的,但是现在的A...

网友评论

      本文标题:cmake 学习

      本文链接:https://www.haomeiwen.com/subject/cuwdkctx.html