1️⃣ 项目结构约定建议项目结构如下:
代码语言:javascript复制your_project/
├── CMakeLists.txt # CMake 配置文件
├── main.c # 源代码示例
└── build/ # 构建目录(建议 Out-of-Source)示例 main.c:
代码语言:javascript复制#include
int main() {
printf("Hello, CMake!\n");
return 0;
}示例 CMakeLists.txt:
代码语言:javascript复制cmake_minimum_required(VERSION 3.10)
project(HelloC C)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
add_executable(${PROJECT_NAME} main.c)2️⃣ 跨平台构建环境准备平台
推荐工具
Linux / macOS
gcc, clang, make, ninja
Windows (MinGW)
MinGW-w64,MSYS2,配置好环境变量(gcc, make)
3️⃣ 标准构建流程创建构建目录,进入:代码语言:javascript复制mkdir build
cd build配置项目Linux/macOS:代码语言:javascript复制cmake ..Windows + MinGW:代码语言:javascript复制cmake -G "MinGW Makefiles" ..编译项目:代码语言:javascript复制cmake --build .运行生成的可执行文件:Linux/macOS:代码语言:javascript复制./HelloCWindows:代码语言:javascript复制.\HelloC.exe4️⃣ 构建后目录结构示例Linux/macOS代码语言:javascript复制your_project/
├── CMakeLists.txt
├── main.c
└── build/
├── CMakeCache.txt
├── CMakeFiles/
├── Makefile
├── cmake_install.cmake
└── HelloCWindows + MinGW代码语言:javascript复制your_project/
├── CMakeLists.txt
├── main.c
└── build/
├── CMakeCache.txt
├── CMakeFiles/
├── Makefile
├── cmake_install.cmake
└── HelloC.exe5️⃣ 常用构建操作命令操作
命令示例
说明
构建项目
cmake --build .
自动调用构建工具
清理构建产物
cmake --build . --target clean
删除中间文件(非源码)
指定目标构建
cmake --build . --target HelloC
构建指定 target
使用 Ninja 构建系统
cmake -G "Ninja" ..
更快,需预装 Ninja
设置 Release 模式
cmake -DCMAKE_BUILD_TYPE=Release ..
仅适用于单配置生成器(非 Visual Studio)
6️⃣ 跨平台命令对照表操作
Linux/macOS
Windows (MinGW)
创建目录
mkdir build && cd build
mkdir build && cd build
配置
cmake ..
cmake -G "MinGW Makefiles" ..
编译
cmake --build .
cmake --build .
运行
./HelloC
.\HelloC.exe
清理
cmake --build . --target clean
cmake --build . --target clean
7️⃣ 注意事项与最佳实践Out-of-Source 构建:推荐单独构建目录,避免源码目录污染。工具链选择:Windows 推荐 MinGW 或 MSYS2 以使用 GNU 工具链。CMake 最低版本:建议 ≥ 3.10,兼容主流功能。设置 C 标准:代码语言:javascript复制set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)生成器选择:Windows 下指定 -G "MinGW Makefiles",避免默认生成 Visual Studio 工程。清理构建:cmake --build . --target clean 清除构建产物,但保留缓存和构建文件。多配置生成器:Visual Studio 支持多配置,MinGW 和 Makefiles 是单配置。8️⃣ 总结CMake 构建流程简单且跨平台:
建议使用 Out-of-Source 构建运行 cmake 生成构建文件通过 cmake --build . 编译运行生成的程序通过合理配置和跨平台命令,CMake 方便地支持多操作系统和构建工具。
本节内容已经全部介绍完毕,希望通过这篇文章,大家对 CMake 有了更深入的理解和认识。感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。