CMake教程

CMake教程

项目部署

  • src:源码
  • ext:第三方依赖库文件与头文件
  • CMakeLists.txt:cmake构建配置文件
  • build:编译产生的中间文件 + Makefile文件

CMakeLists

变量

  • SET(set):定义变量
  • SET(SRC_LST main.c):用变量代替值
  • ${NAME}:获取变量的名称
  • PROJECT_NAME:通过PROJECT指令定义的项目名称
  • CMAKE_SOURCE_DIR / PROJECT_SOURCE_DIR:工程顶层目录

常用指令

  • add_executable(Demo main.c):利用源码生成目标可执行文件
  • add_library:根据源码生成目标库
  • add_subdirectory(NAME):添加一个文件夹进行编译,通过该文件夹下的CMakeLists.txt编译该文件夹下的源码
  • cmake_minimum_required(VERSION 2.5):定义cmake的最低兼容版本

控制指令

  • file(GLOB files 文件夹):收集某文件夹下的所有文件到files中
  • file(WRITE filename “message to write”):将内容写入filename文件中,假如文件不存在则会创建文件
  • file(APPEND filename “message to write”):在filename文件末尾追加内容

实例

1
2
3
4
5
6
7
8
9
10
11
12
# CMake最低版本号要求
cmake_minimum_required(VERSION 2.8)
# 定义项目名称
project(Demo)
# 查找当前目录下的所有源文件,并将名称保存到SRCS变量
aux_source_directory(. SRCS)
# 添加3rdparty子目录
add_subdirectory(3rdparty)
# 生成可执行文件Demo.exe
add_executable(Demo main.c)
# 添加链接库
target_link_libraries(Demo )