C++编译之CMake工具

什么是CMake

  1. CMake 是一个比make 更高级的编译配置工具,允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程,从而做到“Write once, run everywhere”。
  2. linux 平台下使用 CMake 生成 Makefile 并编译的流程:
    1. 编写 CMake 配置文件 CMakeLists.txt
    2. 执行命令 cmake PATHPATH是CMakeLists.txt 所在的目录,cmake命令会生成Makefile文件
    3. 再使用 make 命令进行编译,make命令会编译链接生成可执行文件

编译的四个阶段

执行 make 命令默认执行的是 make all,make all 有四个阶段: prepare test compile package。我们也可以只执行某一个阶段的命令。下面是针对每个命令的说明:

  • make prepare : 只会执行prepare阶段,这个阶段主要是下载编译依赖
  • make test : 只会执行test阶段,这个阶段主要是做单元测试
  • make compile : 只会执行compile阶段,这个阶段主要是进行编译
  • make package : 只会执行packege阶段,这个阶段会把编译产出都copy到output目录中
  • make install : 只会执行install阶段,这个阶段是把编译产出放到$GOPATH/bin目录下,这个不是必须的
  • make clean : 只会执行clean阶段,这个阶段把编译输出的一些文件删除,恢复到编译之前的状态

实例分析

leveldb CMakeLists.txt文件

CMakeLists.txt文件编译C/C++示例小程序

参考链接

  1. CMake实战入门