您的位置:首页 > 其它

CMAKE的常见命令合集

2017-06-01 09:50 169 查看
接触c++也不是很长,但是在写工程的时候CMakeLists.txt写的不规范,会使得测试程序无法编译成功,特此开一篇博客专门写一些cmake中常用的一些命令,这样一来可以做个总结,第二个下次使用也便于查找,相当于自己慢慢建立一个cmake的命令手册吧!

LZ现在写CMakeLists.txt的时候有一个小技巧可以分享给大家,就是在链接库比较多,对于LZ这种新手来说可能会写的不是特别正确,这时,在main.cpp中可以先把相关的库进行include,然后主函数输出个hello world!,如果能通过编译,就能确保对应依赖项添加正确,然后再增加主函数的代码。。。可能有点傻,这个方法,但是对于新手写CMakeLists.txt还是很有效的O(∩_∩)O

1.添加c++11标准支持

#注意等式左右两端不要加空格
set(CMAKE_CXX_FLAGS "-std=c++11")

#有的时候可能会遇到,一定要注意是大写的O,不是数字0
set(CMAKE_CXX_FLAGS "-std=c++11 -O3")


其中,参数CMAKE_CXX_FLAGS含义是: set compiler for c++ language

而后面的-O3(是字母opq的o,大写的欧)是用来调节编译时的优化程度的,最高为-O3,最低为-O0(即不做优化)

-Ox这个参数只有在CMake -DCMAKE_BUILD_TYPE=Release时有效,因为debug 版的项目生成的可执行文件需要有调试信息并且不需要进行优化,而 release 版的不需要调试信息但需要优化。

2.制定cmake的最低版本

#定义cmake的最低版本时2.8
cmake_minimun_required(VERSION 2.8)


可以在终端中查看cmake的版本

cmake -version
#输出如下
cmake version 3.2.2


这里需要注意两点,如果不定义需要的版本可能会报个warning,如果有强迫症或者追求完美,还是把这行代码写上吧。第二点,不要定义的版本比自己安装的版本还高,那样估计就是直接编译不通过了。。。

3.定义工程名称

#定义工程的名称叫felaim,LZ这里是随意写的,小伙伴们也可以自行定义
project(felaim)


4.指定安装地址

第一种方式:

使用 CMAKE_INSTALL_PREFIX 来指定

cmake -DCMAKE_INSTALL_PREFIX=/usr ..


第二种方式:

修改cmake文件,加入:

SET(CMAKE_INSTALL_PREFIX < install_path >)


其实还有好多,但是时间有限,先写一部分,后续待LZ慢慢补上哈O(∩_∩)O
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: