CMake实战(二)

原文首发于:http://kobe-onepiece.work/archives/5030

前言

上一篇《CMake实战(一)》我们是把所有文件放在同一个目录下,而平常开发时,我们会将源文件进行分类,放到不同的目录下。接下来我们来看一下具体要怎么操作。

使用实例

(1)文件内容同上一篇,目录结构如下:

./test2
    |
    +--- main.c
    |
    +--- hello/
          |
          +--- hello.c
          |
          +--- hello.h

在这里插入图片描述
(2) hello目录下创建CMakeLists.txt, 内容如下:

aux_source_directory(. DIR_LIB_SRCS)

# 生成链接库
add_library (hello ${DIR_LIB_SRCS})

(3) 根目录下创建CMakeLists.txt, 内容如下:

#cmake最低版本需求,不加入此行会受到警告信息
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(HELLO) #项目名称
#把当前目录(.)下所有源代码文件加入变量SRC_LIST
AUX_SOURCE_DIRECTORY(. SRC_LIST)
# 添加 hello子目录
ADD_SUBDIRECTORY(hello)
# 设置头文件查找目录
INCLUDE_DIRECTORIES(./hello)
#生成应用程序 main
ADD_EXECUTABLE(main ${SRC_LIST})
# 添加链接库, hello即子目录编译的库
TARGET_LINK_LIBRARIES(main hello)

(3) 创建build目录

mkdir build

目录结构如下:
在这里插入图片描述
(4) 使用cmake构建项目

cd build
cmake ..     // ..表示上一个目录

在这里插入图片描述
(5) 编译生成可执行文件

make

在这里插入图片描述
so easy!

总结

上面是将子目录编译成库,然后进行链接!这只是一种方式,我们也可以直接在根目录的CMakeLists.txt中指定子目录的源文件!大家可以根据个人喜好来决定!

官方文档:

https://cmake.org/cmake/help/v3.19/manual/cmake-commands.7.html

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页