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标准支持
其中,参数CMAKE_CXX_FLAGS含义是: set compiler for c++ language
而后面的-O3(是字母opq的o,大写的欧)是用来调节编译时的优化程度的,最高为-O3,最低为-O0(即不做优化)
-Ox这个参数只有在CMake -DCMAKE_BUILD_TYPE=Release时有效,因为debug 版的项目生成的可执行文件需要有调试信息并且不需要进行优化,而 release 版的不需要调试信息但需要优化。
2.制定cmake的最低版本
可以在终端中查看cmake的版本
这里需要注意两点,如果不定义需要的版本可能会报个warning,如果有强迫症或者追求完美,还是把这行代码写上吧。第二点,不要定义的版本比自己安装的版本还高,那样估计就是直接编译不通过了。。。
3.定义工程名称
4.指定安装地址
第一种方式:
使用 CMAKE_INSTALL_PREFIX 来指定
第二种方式:
修改cmake文件,加入:
其实还有好多,但是时间有限,先写一部分,后续待LZ慢慢补上哈O(∩_∩)O
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
相关文章推荐
- ubuntu常见命令合集
- 常见linux命令使用方法(一)
- linux常见命令
- Linux:用命令之make常见规则解析
- 常见日志文件和常用命令(from cu)
- linux常见命令的列表
- Find命令常见的使用方法
- ubuntu系统一些常见的命令
- 常见日志文件和常用命令
- Firefly和CVS常见命令对比
- Windows命令合集
- Linux下常见文件解压方法及命令
- windows xp 常见cmd命令集合
- dos下各种常见命令索引
- dos入侵命令合集
- RedHat Linux常见日志文件和常用命令
- 华为交换、路由器常见命令
- dos入侵命令合集
- [推荐]『 XML基础 』之XML常见问题合集!
- cisco常见命令+注释(初学请进)