新闻中心

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

2025-12-16
浏览次数:
返回列表
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++免费学习笔记(深入)”;

晓象AI资讯阅读神器 晓象AI资讯阅读神器

晓象-AI时代的资讯阅读神器

晓象AI资讯阅读神器 72 查看详情 晓象AI资讯阅读神器
  • mkdir build && cd build
  • cmake .. —— 默认生成 Unix Makefiles(Linux/macOS)
  • cmake -G "Visual Studio 17 2025" .. —— 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入门指南【工程必备】的详细内容,更多请关注其它相关文章!


# js  # 官网seo团队  # 假发营销类软文推广策划  # 通化seo教程公司  # 怀柔网站建设价格多少  # 即墨区网站优化推广  # 嘉兴网站推广企业哪家好  # 柳州专业网站seo优化公司  # 营销与推广的关系有哪些  # 驻马店律师网站推广公司  # 就在  # 放在  # 编解码  # 也不  # 这是  # 网络编程  # 的人  # linux  # json  # windows  # app  # 工具  # mac  # ai  # unix  # c++  # macos  # win  # vs co  # 第三方  # 三步  # 客户端  # 湖南营销型网站建设单价 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑  Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程  Python大型XML文件高效流式解析教程  Win11怎么开启高性能模式_Windows 11电源计划优化设置  Animex动漫社网入口地址 Animex动漫社网正版在线入口  提升Kafka消费者健壮性:会话超时处理与消息处理语义  顺丰国际快递查询 国际件官方查询入口  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法  蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址  海量存储:机器视觉智能化的核心基石  css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染  小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口  12306选座怎么选到特殊座位_12306特殊座位选择注意事项  Sublime Text怎么设置垂直标尺_Sublime配置Rulers规范代码长度  如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】  Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示  漫蛙2正版漫画站 漫蛙2网页版快速访问入口  PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果  《噬血代码2》新预告片发布 展示游戏剧情  特斯拉自动驾驶房车计划曝光 原型车将于2027年亮相  马斯克:Optimus 人形机器人复数形式为 Optimi  必由学登录入口 必由学官方网站在线访问链接  实现全屏滚动与导航点:专业教程  蛙漫安全无毒 官方认证的绿色入口  Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】  格力空气能E5故障代码是什么情况_格力空气能E5代码解析与应对措施  将HTML动态表格多行数据保存到Google Sheet的教程  中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等  C++如何解决segmentation fault_C++段错误调试与原因分析  yandex入口引擎手机版 yandex安卓版下载入口  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  汽水音乐在线版入口_汽水音乐网页播放手册  网站内容防复制粘贴的实现策略与局限性  在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全  Golang如何使用const iota_Go iota常量计数器讲解  怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】  理解J*aScript Promise的微任务队列与执行顺序  TypeScript/J*aScript:高效查找数组中首个唯一ID对象  win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】  Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接  地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站  Web Components中自定义开关组件状态同步的常见陷阱与解决方案  J*aScript生成器_j*ascript异步迭代  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  J*aScriptWebpack优化_J*aScript构建工具实战  将HTML Canvas内容转换为可上传的图像文件(File对象)  魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】  蛙漫画网页版全站入口 蛙漫热门作品免费浏览 

搜索