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