Linux中CMake的使用4-代码与编译文件单独存放

本篇介绍当源文件与编译文件独立存放时,如何编写cmakelists.txt。
1只使用一个cmakelists.txt 1.1 目录结构 文件目录结构如下,sum.c、sum.h、sub.c、sub.h和main.c的代码内容见前面的文章。
其中sum.h和sub.h放到include这个文件夹中,main.c、sum.c和sub.c放到src这个文件夹中。
在整个工程中,只有一个cmakelists.txt:
1.2 cmakelists.txtcmake_minimum_required (version 2.8)project (sum_sub_test)include_directories (include)aux_source_directory (src src_list)add_executable (sum_sub_test ${src_list})set (executable_output_path ${project_source_dir}/bin) 最后一句是一个新的知识点:
executable_output_path:cmake自带的预定义变量,表示可执行文件的存放位置
project_source_dir:cmake自带的预定义变量,表示工程的根目录
set指令:用于定义变量,即指定可执行文件存放在工程根目录下的bin目录中
1.3 运行测试
2 顶层+子层cmakelists.txt 一个工程,可以不只有一个cmakelists.txt,通过层级间的管理,可以实现顶层对底层的调用。
2.1 目录结构 文件目录结构如下,sum.c、sum.h、sub.c、sub.h和main.c的代码内容见前面的文章。
其中sum.h和sub.h放到include这个文件夹中,main.c、sum.c和sub.c放到src这个文件夹中。
在整个工程中,外出有一个cmakelists.txt,子层src目录中也有一个cmakelists.txt:
2.2 cmakelists.txt 2.2.1 顶层cmakelists.txtcmake_minimum_required (version 2.8)project (sum_sub_test)add_subdirectory (src) 最后一句是一个新的知识点:
add_subdirectory():向当前工程添加存放源文件的子目录
这里指定的是在src目录下存放了源文件
当执行cmake指令时,就会进入src目录下去找下一级的cmakelists.txt
所以在src目录下也必须要有一个子层的cmakelists.txt
2.2.2 子层cmakelists.txtinclude_directories (../include)aux_source_directory (. src_list)add_executable(sum_sub_test ${src_list})set (executable_output_path ${project_source_dir}/bin) 最后的set语句刚才已经见过了,就是指定可执行文件的输出位置。
2.3 运行测试 3 总结 本篇介绍了源文件与编译文件独立存放时,如何编写cmakelists.txt。
cmake_minimum_required (version 2.8)project (sum_sub_test)include_directories (include)aux_source_directory (src src_list)add_executable (sum_sub_test ${src_list})set (executable_output_path ${project_source_dir}/bin) 新引入的知识点是最后这句,通过set来指定可执行文件的输出位置:
set (executable_output_path ${project_source_dir}/bin) 以及使用顶层+子层的cmakelists.txt时,通过add_subdirectory来指定子层源文件的目录:
add_subdirectory (src) 并在相应的子层目录中再编写cmakelists.txt。


浅谈红外温度传感器的运用
CNC机床自动锁死的功能如何实现的?
基于SoC的高精度电子血压检测仪
机器人时代的到来,陕西机器人产业永不掉队
分子策略构筑高能量密度锂金属电池的研究进展
Linux中CMake的使用4-代码与编译文件单独存放
硕博电子助力劲旅环境打造未来电动洗扫车
视频展示台概述
共赢的艺术 锐成芯微助力中国打印机产业走向世界
丰田和中部电力公司合作,回收旧电池,建立一个大容量蓄电池系统
使用MPU监控创建安全可靠的嵌入式系统 使用MPU监控的原因和好处
医疗机器人研发商磅策医疗完成近亿元A+轮融资
教你们如何用 Python 快速制作海报级地图附代码
电压降是什么意思_电压降是怎么产生的
联想全新笔记本扬天S550正式开售 最低到手价3499元
电流互感器的运行原则_电流互感器的运行维护
微雪电子7.5寸红黑白三色墨水屏介绍
PhotoMOS MOSFET光控继电器控制电路
胆机(电子管放大器)调试注意事项
真菌毒素测定仪有哪些优势