目录
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构建流程
- 生成构建文件
在项目根目录中运行cmake .
。CMake 会根据CMakeLists.txt
生成合适的构建文件(如 Makefile)。 - 构建项目
执行cmake --build .
开始构建项目,CMake 会根据生成的构建文件(如 Makefile)进行编译。 - 安装项目
如果项目有安装步骤,可以执行cmake --install .
来进行安装。
CMake常见问题
- CMake无法找到编译器
确保已经正确安装编译器,并且 CMake 能够找到它。如果使用的是非默认编译器,可能需要通过设置CMAKE_CXX_COMPILER
或CMAKE_C_COMPILER
来指定编译器路径。 - 构建失败:找不到库
在 CMakeLists.txt 中确保正确链接了所需的库,使用find_package
来查找外部库,并通过target_link_libraries
来链接。
发表回复