首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【CMake】使用 CMake 构建 C/C++ 项目的标准流程详解

【CMake】使用 CMake 构建 C/C++ 项目的标准流程详解

作者头像
LuckiBit
发布2025-07-18 14:27:44
发布2025-07-18 14:27:44
9850
举报
文章被收录于专栏:C语言C语言

1️⃣ 项目结构约定

建议项目结构如下:

代码语言:javascript
复制
your_project/
├── CMakeLists.txt       # CMake 配置文件
├── main.c               # 源代码示例
└── build/               # 构建目录(建议 Out-of-Source)

示例 main.c

代码语言:javascript
复制
#include <stdio.h>

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️⃣ 标准构建流程

  1. 创建构建目录,进入:
代码语言:javascript
复制
mkdir build
cd build
  1. 配置项目
  • Linux/macOS:
代码语言:javascript
复制
cmake ..
  • Windows + MinGW:
代码语言:javascript
复制
cmake -G "MinGW Makefiles" ..
  1. 编译项目:
代码语言:javascript
复制
cmake --build .
  1. 运行生成的可执行文件:
  • Linux/macOS:
代码语言:javascript
复制
./HelloC
  • Windows:
代码语言:javascript
复制
.\HelloC.exe

4️⃣ 构建后目录结构示例

Linux/macOS
代码语言:javascript
复制
your_project/
├── CMakeLists.txt
├── main.c
└── build/
    ├── CMakeCache.txt
    ├── CMakeFiles/
    ├── Makefile
    ├── cmake_install.cmake
    └── HelloC
Windows + MinGW
代码语言:javascript
复制
your_project/
├── CMakeLists.txt
├── main.c
└── build/
    ├── CMakeCache.txt
    ├── CMakeFiles/
    ├── Makefile
    ├── cmake_install.cmake
    └── HelloC.exe

5️⃣ 常用构建操作命令

操作

命令示例

说明

构建项目

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 方便地支持多操作系统和构建工具。

  1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对 CMake 有了更深入的理解和认识。
  2. 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1️⃣ 项目结构约定
  • 2️⃣ 跨平台构建环境准备
  • 3️⃣ 标准构建流程
  • 4️⃣ 构建后目录结构示例
    • Linux/macOS
    • Windows + MinGW
  • 5️⃣ 常用构建操作命令
  • 6️⃣ 跨平台命令对照表
  • 7️⃣ 注意事项与最佳实践
  • 8️⃣ 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档