首页 > 后端开发 > C++ > 正文

C++ CMake怎么用?C++项目构建工具CMake入门指南【工程必备】

冰火之心
发布: 2025-12-16 15:46:02
原创
416人浏览过
CMake构建C++项目核心三步:写CMakeLists.txt(含cmake_minimum_required、project、add_executable)、在build目录中运行cmake生成本地构建文件、用make/ninja/cmake--build编译运行。

c++ cmake怎么用?c++项目构建工具cmake入门指南【工程必备】

用 CMake 构建 C++ 项目,核心就三步:写 CMakeLists.txt、生成构建文件、编译运行。它不直接编译代码,而是生成 Makefile(Linux/macOS)或 Visual Studio 工程(Windows)等本地构建系统所需的配置,真正跨平台的关键就在这儿。

写好 CMakeLists.txt:项目的“蓝图”

这是 CMake 的入口文件,放在项目根目录。最简结构只需三行:

  • cmake_minimum_required(VERSION 3.10) —— 声明最低 CMake 版本,避免语法不兼容
  • project(MyApp LANGUAGES CXX) —— 定义项目名和语言(CXX 表示 C++)
  • add_executable(MyApp main.cpp) —— 指定可执行文件名和源文件

如果用了头文件、多个源码或第三方库,再加 include_directories()target_include_directories()(推荐)、find_package()target_link_libraries() 即可。注意:路径尽量用相对路径,别写死绝对路径。

生成构建文件:用 cmake 命令“翻译”配置

不要在源码目录里直接运行 cmake,养成新建 build/ 子目录的习惯:

立即学习C++免费学习笔记(深入)”;

Gaga
Gaga

曹越团队开发的AI视频生成工具

Gaga 1151
查看详情 Gaga
  • mkdir build && cd build
  • cmake .. —— 默认生成 Unix Makefiles(Linux/macOS)
  • cmake -G "Visual Studio 17 2022" .. —— Windows 下生成 VS 工程(版本按实际调整)
  • cmake -G "Ninja" .. —— 更快的 Ninja 构建器(需提前安装)

成功后,build 目录里会出现 Makefile、compile_commands.json 或 .sln 等文件,这才是后续编译的依据。

编译与运行:和本地工具链打交道

生成完,就用对应构建工具执行:

  • Linux/macOS(Makefiles):make 编译,./MyApp 运行
  • Linux/macOS(Ninja):ninja 编译,./MyApp 运行
  • Windows(VS):cmake --build . 或直接打开 .sln 用 VS 图形界面编译
  • 通用方式(推荐):cmake --build . —— 自动适配当前生成器,不用记 make/ninja/msbuild

想清理?删掉整个 build 目录就行,CMake 没有“make clean”式命令,也不需要。

小技巧:让开发更顺手

  • cmake -DCMAKE_BUILD_TYPE=Debug .. 控制构建类型(Debug/Release),影响优化和调试信息
  • 第三方库装在系统路径(如 /usr/local)时,加 -DCMAKE_PREFIX_PATH=/usr/local 帮 CMake 找到它
  • 编辑 CMakeLists.txt 后,不用删 build 目录重来,直接进 build 目录再运行一次 cmake .. 就能更新配置
  • cmake-gui 或 CLion/VS Code 的 CMake 插件,可视化配置变量,适合新手排查问题

基本上就这些。不复杂,但容易忽略目录分离和构建类型设置——这两点踩过坑的人最多。

以上就是C++ CMake怎么用?C++项目构建工具CMake入门指南【工程必备】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号