Linux下CMake简明教程(五)正规一点的组织结构
代码在git
正规一点来说,一般会把源文件放到src目录下,把头文件放入到include文件下,生成的对象文件放入到build目录下,最终输出的elf文件会放到bin目录下,这样整个结构更加清晰。让我们把前面的文件再次重新组织下,
.
.
├── bin
├── include
│ ├── testFunc1.h
│ └── testFunc.h
└── src├── main.cpp├── testFunc1.cpp└── testFunc.cpp
cmake_minimum_required (VERSION 2.8)project (demo)add_subdirectory (src)
aux_source_directory (. SRC_LIST)include_directories (../include)add_executable (main ${SRC_LIST})set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
这里又出现一个新的命令set,是用于定义变量的,EXECUTABLE_OUT_PATH和PROJECT_SOURCE_DIR是CMake自带的预定义变量,其意义如下,
- EXECUTABLE_OUTPUT_PATH :目标二进制可执行文件的存放位置
- PROJECT_SOURCE_DIR:工程的根目录
所以,这里set的意思是把存放elf文件的位置设置为工程根目录下的bin目录。(cmake有很多预定义变量,详细的可以网上搜索一下)
添加好以上这2个CMakeLists.txt后,整体文件结构如下,
.
├── bin
├── CMakeLists.txt
├── include
│ ├── testFunc1.h
│ └── testFunc.h
└── src├── CMakeLists.txt├── main.cpp├── testFunc1.cpp└── testFunc.cpp
mkdir build
cd build
cmake ..
make cd ..
cd ./bin
./main
代码
cmake_minimum_required (VERSION 2.8)project (demo)set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)aux_source_directory (src SRC_LIST)include_directories (include)add_executable (main ${SRC_LIST})
Linux下CMake简明教程(五)正规一点的组织结构相关推荐
- Linux下CMake简明教程(二)同一目录下多个源文件
代码在git 接下来进入稍微复杂的例子:在同一个目录下有多个源文件.在之前的目录下添加2个文件,testFunc.c和testFunc.h.添加完后整体文件结构如下, (base) ledi@ledi ...
- Linux下CMake简明教程(一)简单入门
代码链接 CMake是开源.跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件 ...
- Linux下CMake简明教程(七)对库进行链接
代码在git 既然我们已经生成了库,那么就进行链接测试下.重新建一个工程目录,然后把上节生成的库拷贝过来,然后在在工程目录下新建src目录和bin目录,在src目录下添加一个main.c,整体结构如下 ...
- Linux下CMake简明教程(10) 定义宏来控制打印的信息
代码在git 假设我们有个main.c,其内容如下 #include <stdio.h>int main(void) {#ifdef WWW1printf("hello worl ...
- Linux下CMake简明教程(九) 添加控制选项
代码在git 有时希望在编译代码时只编译一些指定的源码,可以使用cmake的option命令,主要遇到的情况分为2种: 本来要生成多个bin或库文件,现在只想生成部分指定的bin或库文件 对于同一个b ...
- Linux下CMake简明教程(八) 添加编译选项
代码在git 有时编译程序时想添加一些编译选项,如-Wall,-std=c++11等,就可以使用add_compile_options来进行操作. 这里以一个简单程序来做演示,main.cpp如下 # ...
- Linux下CMake简明教程(六)动态库和静态库的编译控制
代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...
- Linux下CMake简明教程(四)不同目录下多个源文件
代码在git 一般来说,当程序文件比较多时,我们会进行分类管理,把代码根据功能放在不同的目录下,这样方便查找.那么这种情况下如何编写CMakeLists.txt呢? 我们把之前的源文件整理一下(新建2 ...
- Linux下CMake简明教程(三)同一目录下多个源文件
如果在同一目录下有多个源文件,那么只要在add_executable里把所有源文件都添加进去就可以了.但是如果有一百个源文件,再这样做就有点坑了,无法体现cmake的优越性,cmake提供了一个命令可 ...
最新文章
- linux进制转换的函数,Linux shell 进制转换
- 关闭Outlook自动完成功能
- oracle执行代码权限,利用Oracle许可执行安全模式实现更好的控制
- 几何画板自定义工具_用好神奇的数学工具--几何画板,轻松作出复杂的几何图形...
- OpenCV3学习(12.3) kalman滤波器
- 100内奇数之和流程图_JavaScript基础教程(六)流程控制之循环语句
- typedef和define的用法和区别
- 更改Mysql5.7的默认编码为utf8解决database为latin1无法修改问题
- android 6.0 蓝牙进程,Android6.0-蓝牙权限问题
- LeetCode 4Sum 4个数之和
- Android 编程下 ListView 和 CheckBox 混合使用时的常见问题
- 30个有趣的Python实战项目(附源码)
- 数据库常用增删改查语句
- 中国首档程序员真人秀,20位选手找bug做模型,结果一开场主办方就惨遭攻击
- 医学CT图像三维重建代码
- boost asio生成lib
- 程序员在哪能接到私单?
- virt-install安装虚拟机
- 麒麟座V3.1接入OneNET平台初体验--上传温湿度
- ABP文档 - Web Api 控制器