CMake编译工程
2022/3/2 23:17:03
本文主要是介绍CMake编译工程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
CMake目录结构:项目主目录存在一个CMakeList.txt文件
两种方式设置编译规则
1、包含源文件的子文件包含CMakeList.txt文件,主目录的CMakeList.txt通过add_subdirectory添加子目录即可;
2、包含源文件的子文件夹未包含CMakeList.txt文件,子目录编译规则体现在主目录的CMakeList.txt中;
1.编译流程
在 linux 平台下使用 CMake 构建C/C++ 工程的流程如下:
- 手动编写 CMakeList.txt
- 执行命令 cmake PATH 生成 Makefile( PATH 是顶层 CMakeList.txt 所在的目录)。
- 执行命令 make 进行编译
# import tips . # 表示当前目录 ./ # 表示当前目录 .. # 表示上级目录 ../ # 表示上级目录
2.两种构建方式
- 内部构件(in-source build):不推荐使用
内部构建会在同级目录下产生一大堆中间文件,这些中间文件并不是我们最终所需要的,和工程源文件放在一起会显得杂乱无章。
## 内部构建 # 在当前目录下,翻译本目录的CMakeList.txt,生成Makefile和其他文件 cmake # 执行make命令,生成target make
- 外部构建(out-of-source build):推荐使用
将编译输出文件与源文件放到不同目录中
## 外部构建 # 1. 在当前目录下,创建build文件夹 mkdir build # 2.进入build文件夹 cd build # 3.编译上级目录的CMakeLists.txt,生成Makefile和其他文件 cmake.. # 4.执行make命令,生成target make
本文为笔者学习时的记录笔记
视频链接
这篇关于CMake编译工程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 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专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享