全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-690-7320

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

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入门指南【工程必备】的详细内容,更多请关注其它相关文章!


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


相关文章: React项目中导航栏Logo自适应布局:避免裁剪与布局溢出  qq游戏跨平台入口_qq游戏多设备同步登录  UC浏览器网页版登录入口官网 电脑版网址入口  妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画  新三国志曹操传110级星符试炼夏侯渊极难攻略  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程  C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责  在FastAPI中利用lifespan与依赖注入高效管理Redis连接池  Composer如何解决json扩展缺失的错误  PHP实现即时文章发布与单次数据库写入:自提交模式教程  为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法  CKEditor 5 自定义构建在React应用中渲染失败的调试与解决  微信网页版官方快速登录入口 微信网页版网页版账号直达  如何仅使用CSS更改登录界面背景图像图标的颜色  AO3官方在线访问地址 Archive of Our Own最新镜像合集  台积电1.4nm工艺A14瞄准2028:10年来性能提升80%  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  极兔快递快件信息查询系统 极兔快递官网运单号追踪  如何在Promise链中优雅地中断后续then执行  深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射  快手网页版在线登录 快手网页版官网入口快速访问  抖音创作助手登录入口_抖音创作辅助工具官网直达  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  Tailwind CSS line-clamp 布局问题解析与修复指南  如何将HTML表格多行数据保存到Google Sheet  Golang如何使用context实现超时取消_Golang context超时取消模式实践  必由学登录入口 必由学官方网站在线访问链接  Typer应用中动态命令行参数的解析与处理  Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】  Pyrogram与g4f集成:异步编程实践与常见错误解决  c++中的std::basic_string的SSO优化_c++短字符串优化深度解析  在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析  Mac怎么锁定备忘录_Mac备忘录加密设置教程  漫蛙漫画官方首页 漫蛙2漫画在线阅读入口  深入理解J*a合成构造器:何时以及为何阻止其生成  WooCommerce 购物车显示所有交叉销售商品教程  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  葱吃多了会怎样 葱吃多了会伤胃吗  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  必由学官网快捷入口 必由学网页版在线学习平台  哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法  Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧  QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台  PHP教程:将数据库查询结果动态展示到HTML Textarea的最佳实践  单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分  J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。