代码在git

一般来说,当程序文件比较多时,我们会进行分类管理,把代码根据功能放在不同的目录下,这样方便查找。那么这种情况下如何编写CMakeLists.txt呢?
我们把之前的源文件整理一下(新建2个目录test_func和test_func1),整理好后整体文件结构如下
.
├── build
├── CMakeLists.txt
├── main.c
├── temp
│   └── CMakeLists1.txt
├── test_func
│   ├── testFunc.c
│   └── testFunc.h
└── test_func1├── testFunc1.c└── testFunc1.h

把之前的testFunc.c和testFunc.h放到test_func目录下,testFunc1.c和testFunc1.h则放到test_func1目录下。

其中,CMakeLists.txt和main.c在同一目录下,内容修改成如下所示,

cmake_minimum_required (VERSION 2.8)project (demo)include_directories (test_func test_func1)aux_source_directory (test_func SRC_LIST)
aux_source_directory (test_func1 SRC_LIST1)add_executable (main main.c ${SRC_LIST} ${SRC_LIST1})
mkdir build
cd build
cmake  ..
make
./main
这种写法也可以
cmake_minimum_required (VERSION 2.8)project (demo)include_directories (test_func test_func1)aux_source_directory (test_func SRC_LIST)
aux_source_directory (test_func1 SRC_LIST)#add_executable (main main.c ${SRC_LIST} ${SRC_LIST1})
add_executable (main main.c ${SRC_LIST} )
#include "test_func/testFunc.h"
#include "test_func1/testFunc1.h"

#include “test_func/testFunc.h”
#include “test_func1/testFunc1.h”

Linux下CMake简明教程(四)不同目录下多个源文件相关推荐

  1. Linux下CMake简明教程(二)同一目录下多个源文件

    代码在git 接下来进入稍微复杂的例子:在同一个目录下有多个源文件.在之前的目录下添加2个文件,testFunc.c和testFunc.h.添加完后整体文件结构如下, (base) ledi@ledi ...

  2. Linux下CMake简明教程(三)同一目录下多个源文件

    如果在同一目录下有多个源文件,那么只要在add_executable里把所有源文件都添加进去就可以了.但是如果有一百个源文件,再这样做就有点坑了,无法体现cmake的优越性,cmake提供了一个命令可 ...

  3. Linux下CMake简明教程(七)对库进行链接

    代码在git 既然我们已经生成了库,那么就进行链接测试下.重新建一个工程目录,然后把上节生成的库拷贝过来,然后在在工程目录下新建src目录和bin目录,在src目录下添加一个main.c,整体结构如下 ...

  4. Linux下CMake简明教程(10) 定义宏来控制打印的信息

    代码在git 假设我们有个main.c,其内容如下 #include <stdio.h>int main(void) {#ifdef WWW1printf("hello worl ...

  5. Linux下CMake简明教程(九) 添加控制选项

    代码在git 有时希望在编译代码时只编译一些指定的源码,可以使用cmake的option命令,主要遇到的情况分为2种: 本来要生成多个bin或库文件,现在只想生成部分指定的bin或库文件 对于同一个b ...

  6. Linux下CMake简明教程(八) 添加编译选项

    代码在git 有时编译程序时想添加一些编译选项,如-Wall,-std=c++11等,就可以使用add_compile_options来进行操作. 这里以一个简单程序来做演示,main.cpp如下 # ...

  7. Linux下CMake简明教程(六)动态库和静态库的编译控制

    代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...

  8. Linux下CMake简明教程(五)正规一点的组织结构

    代码在git 正规一点来说,一般会把源文件放到src目录下,把头文件放入到include文件下,生成的对象文件放入到build目录下,最终输出的elf文件会放到bin目录下,这样整个结构更加清晰.让我 ...

  9. Linux下CMake简明教程(一)简单入门

    代码链接 CMake是开源.跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件 ...

最新文章

  1. -bash:command not found
  2. Win32 SDK 编写截图小工具
  3. 两点补充——CSS3新属性以及弹性布局
  4. C# 客户端HTTP通信
  5. php react-native,React-Native+Mobx实现商城APP
  6. maze_travel的隐私声明
  7. LiteOS:剖析时间管理模块源代码
  8. Linux工作笔记032---Centos7.3 kill杀掉不用的进程_查看某个进程_某个进程占用的cpu,内存情况
  9. @SessionAttributes
  10. rust怎么造双层_DIY双层电路板 制作详解
  11. django:访问本地静态文件的配置
  12. 将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方...
  13. 向下兼容性格什么意思_向下兼容是什么意思
  14. java留言板_java实现简单留言板功能的代码实例
  15. i9507 android8.1,三星I9507V官方原版固件rom系统刷机包下载
  16. 苹果6访问限制密码4位_1Password for Mac(专业密码管理工具)
  17. 文件压缩(哈夫曼树)
  18. 【IoT】创业:产品雷达图 - 如何明智地权衡产品?
  19. 解决HP ProLiant DL380 G5的安装与启动CentOS7时不能识别raid硬盘问题
  20. numpy之标准差std()

热门文章

  1. 【雷达书籍分享】RADAR SYSTEMS ANALYSIS AND DESIGN USING MATLAB
  2. 【基带传输】基于matlab的简易无线基带传输系统的仿真
  3. vue.js响应式原理解析与实现
  4. Android NDK开发之旅1 NDK介绍
  5. 【下载】RSA1024及RSA2048加密算法漏洞CVE-2017-7526 问题出在GnuPG加密库
  6. 使用sublime text2怎样新建文件高速生成HTML头部信息?
  7. CentOS7下用jdk1.7编译hadoop-2.7.1全过程详解
  8. angularjs directive 的几点使用技巧
  9. Normal Equations 的由来与推导
  10. PAT甲级1110 Complete Binary Tree:[C++题解]判断完全二叉树