CMake笔记
2021/5/15 10:55:29
本文主要是介绍CMake笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 设置编译选项,add_compile_option和set CMAKE_CXX_FLAGS两种方式,
add_compile_option:针对所有编译器,包括C和C++编译器
而set CMAKE_C_FLAGS和CMAKE_CXX_FLAGS分别针对C和C++
譬如想加入C++11支持,
add_compile_option(-std=C++11)但是因为add_compile_option是针对所有类型编译器,所以在编译C代码时,就会产生warning
此时可以使用 set (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
2. project(PROJECT_NAME),这个不是强制性的,但是最好始终都加上,这一行会引入两个变量
PROJECT_NAME_BINARY和 PROJECT_NAME_SOURCE_DIR,是等价于以下
PROJECT_SOURCE_DIR = 全路径/src
PROJECT_BINARY_DIR = 全路径/build
3. $ENV的使用场景:因为经常把第三方依赖装到非系统目录下,因此cmake需要使用环境变量
cmake中对环境变量读写都是通过ENV前缀来访问环境变量
读取环境变量则要使用 $ENV{JAVA_HOME} 这样的格式
写环境变量如下:
set ( ENV{PATH} /home/zhangkunwu)
读取环境变量时前面一定要加$,而其他时间使用ENV则是指代变量名而不是取值
4. add_exectuable 告诉工程生成一个可执行文件
5. add_library 则是告诉工程生成一个库文件--CMakeList.txt文件中,命令不区分大小写,
而参数和变量是大小写相关的
6. CMake .. 用来指出CMakeList.txt文件所在的位置
7. set (CMAKE_VERBOSE_MAKEFILE on) 等同于 SET (CMAKE_VERBOSE_MAKEFILE on)
要显示构建过程中详细的信息,譬如为了得到更详细的出错信息
这篇关于CMake笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享