点击蓝字
关注我们
本篇文章主要描述CMake的基本用法。在之前的文件中我对Makefile,Autotools这两个构建工具。相关文章如下:
《linux下,Makefile是啥??》
《实战Makefile前,该知道那些知识?》
《Makefile的实战例子》
《autotools及Yocto下通过autotools编译》
开放源代码。
跨平台,并可生成native编译配置文件,在Linux平台,生成makefile。在苹果平台,生成xcode。在Windows平台,生成MSVC的工程文件。
能够管理大型项目。
简化编译构建过程和编译过程,工具链也非常简单:cmake+make。
高效率,比autotools效率快。主要原因:CMake在工具链中没有libtool。
可扩展,可以为CMake编写特定功能的模块,扩充CMake功能。
一个简单的cmake例子只需要两个文件:CMakeLists.txt和main.c。我们准备一下这两个文件。其中main.c是我们要编译的源文件,CMakeLists.txt是关键,他就是告诉cmake如何编译。可以理解为编译的规则。接下来我们来初体验:
main.c:
include "stdio.h"int main(int argc, char *argv[]){
printf("Rice CMake!!!\n"); return 0;}
CMakeLists.txt:
PROJECT(RICE)SET(SRC_LIST main.c)MESSAGE(STATUS "THIS IS BINARY DIR " ${PROJECT_BINARY_DIR})MESSAGE(STATUS "THIS IS SOURCE DIR " ${PROJECT_SOURCE_DIR})ADD_EXECUTABLE(rice ${SRC_LIST})
注意:CMakeLists.txt文件名的规范,注意大小写,否则编译不过。
编译测试 :首相执行命令 cmake . 命令,该命令会根据CMakeLists.txt的规则构建出Makefile,然后执行 make 命令,生成可执行程序,然后运行 ./rice 查看结果:rice@rice:~/rice_file/cmake$ cm