- @author wangdaopo
- @email 3168270295@qq.com */
-
简介
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。
导入已有的CMakeLists.txt编辑配置
打开cmake程序,选择源码路径和编译路径,然后单击configure,成功会显示Configuring done在最后。
然后就可以出来下面的图像,然后选择要修改的编译项参数,
更多编译信息配置
然后单击Generate
-
实例
//实例/
#项目名 ,这一行自动引入两个变量 HELLO_BINARY_DIR-二进制生成目录 和 HELLO_SOURCE_DIR-源码目录
PROJECT(HELLO)
#例如输出两个变量值,message用于输出变量值
message("HELLO_BINARY_DIR=" ${HELLO_BINARY_DIR})
message("HELLO_SOURCE_DIR=" ${HELLO_SOURCE_DIR})
#输出CMake过程详细信息,不是必须的
SET(CMAKE_VERBOSE_MAKEFILE on)
#设置cmake在linux下工作
SET(CMAKE_SYSTEM_NAME Linux)
#设置C语言所用编译器为arm-none-linux-gnueabi-gcc
SET(CMAKE_C_COMPILER arm-none-linux-gnueabi-gcc)
#设置C++语言所用编译器为arm-none-linux-gnueabi-g++
SET(CMAKE_CXX_COMPILER arm-none-linux-gnueabi-g++)
#还可以设置编译器参数,例如-g 打开调试 -O2 优化等级
set(CMAKE_C_FLAGS "-g -O2 ")
#定义编译器查找头文件和库文件目录
SET(CMAKE_FIND_ROOT_PATH "/home/share/glib/arm-2010q1/arm-none-linux-gnueabi/libc")