CMake 2.0


CMake 2.0是老C++ 项目的构建环境,

CMake 3.0在其基础上增强丰富了许多功能。

此文先记录一下 CMake 2.0 的一些语法。

基础知识:库文件通过头文件向外导出接口。用户通过头文件找到库文件中
头文件中有函数的申明,库文件实现函数的定义。

(头文件与库文件的区别_hugh 的博客-CSDN博客_库文件和头文件区别)

一、常用选项

1.添加头文件搜索目录

有时我们需要#include 头文件来使用第三方库,那么就要使用以下命令在cmake 配置头文件的目录

include_directories(头文件搜索目录)

使用这个命令后,我们代码中就可以直接#include 而不是 #include“./abc/edgf/xxx.h”。

2.连接一个库

link_libraries(可执行文件名 库名)

3.添加头文件搜索目录

link_directories(库搜索目录)

4.生成一个库

静态库

add_library(库名 STATIC 生成库所需的文件)

动态库

add_library(库名 SHARED 生成库所需的文件)

注意“library”是单数 library

5.添加子模块

add_subdirectories(子模块目录)

子模块内部可以有自己的CMakeLists.txt

6.获取所有源文件名

aux_source_directory(

)

把dir 目录所有源文件名加入 var变量中

在add_exe()时使用这个变量

aux_source_directory(. DIR_SRCS)

# 指定生成目标
add_executable(Demo ${DIR_SRCS})

二、使用第三方库

1.作为纯头文件引入

只需在cmakelists中使用include_directories()添加目录即可。

因为是纯头文件,所以不需要link

缺点是需要编译。

2. 作为子模块引入

add_subdirectories()

link_libraries()

3.使用

find_package(第三方库名 REQUIRED)

去找到系统安装好的库

然后再 

link_libraries()链接