目录

  1. CMake简介
  2. CMake安装
  3. CMake基本命令
  4. CMakeLists.txt文件详解
  5. CMake构建流程
  6. CMake常见问题
  7. 参考资料

CMake简介

CMake 是一个跨平台的自动化构建系统,它通过编写 CMakeLists.txt 文件来描述项目的构建过程,生成适合各平台的构建文件(如 Makefile、Visual Studio 工程文件等)。CMake 让开发者能够方便地管理和维护跨平台、跨编译器的构建配置。

CMake安装

Linux

在大多数 Linux 发行版中,CMake 可以通过包管理器安装。例如,在 Ubuntu 上:

sudo apt update
sudo apt install cmake

macOS

在 macOS 上,可以通过 Homebrew 安装 CMake:

brew install cmake

Windows

在 Windows 上,可以从 CMake官网 下载并安装 CMake,也可以通过包管理器如 choco 安装:

choco install cmake

CMake基本命令

  • cmake .
    生成构建文件(如 Makefile)。执行该命令时,CMake 会在当前目录查找 CMakeLists.txt 文件并生成构建配置。
  • cmake –build .
    执行构建过程,编译源代码。
  • cmake –install .
    安装构建的项目。
  • cmake –version
    查看 CMake 版本。

CMakeLists.txt文件详解

CMakeLists.txt 是 CMake 构建系统的核心文件,它定义了项目的构建规则和依赖关系。以下是一些常见的配置项和用法。

设置项目名称和版本

cmake_minimum_required(VERSION 3.10)  # 设置最低 CMake 版本
project(MyProject VERSION 1.0)         # 设置项目名称和版本

添加源文件和头文件

# 添加源文件
add_executable(MyExecutable main.cpp)

# 或者,如果源文件分散在多个目录中,可以使用 glob 来自动查找源文件
file(GLOB SOURCES "src/*.cpp")
add_executable(MyExecutable ${SOURCES})

设置编译选项

# 设置编译器选项(例如启用调试模式)
set(CMAKE_BUILD_TYPE Debug)

链接库文件

# 链接系统库
target_link_libraries(MyExecutable PRIVATE pthread)

# 链接其他 CMake 项目构建的库
target_link_libraries(MyExecutable PRIVATE MyLibrary)

CMake构建流程

  1. 生成构建文件
    在项目根目录中运行 cmake .。CMake 会根据 CMakeLists.txt 生成合适的构建文件(如 Makefile)。
  2. 构建项目
    执行 cmake --build . 开始构建项目,CMake 会根据生成的构建文件(如 Makefile)进行编译。
  3. 安装项目
    如果项目有安装步骤,可以执行 cmake --install . 来进行安装。

CMake常见问题

  • CMake无法找到编译器
    确保已经正确安装编译器,并且 CMake 能够找到它。如果使用的是非默认编译器,可能需要通过设置 CMAKE_CXX_COMPILERCMAKE_C_COMPILER 来指定编译器路径。
  • 构建失败:找不到库
    在 CMakeLists.txt 中确保正确链接了所需的库,使用 find_package 来查找外部库,并通过 target_link_libraries 来链接。

参考资料