全网整合营销服务商

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

免费咨询热线:400-708-3566

C++项目如何使用CMake进行构建?(入门教程)

CMake构建C++项目的核心是编写CMakeLists.txt并生成原生构建系统;需创建源码和CMakeLists.txt,执行out-of-source构建(如mkdir build && cd build && cmake ..),再用make/ninja/VS编译运行。

用CMake构建C++项目,核心是写好CMakeLists.txt,然后用命令行生成并调用原生构建工具(如Make、Ninja或Visual Studio)。它不直接编译代码,而是“生成构建系统”,让项目更易跨平台、可维护。

第一步:准备基础文件结构

一个最小可行的C++项目通常包含:

  • 源码文件(如 main.cpp
  • 顶层 CMakeLists.txt(必需,放在项目根目录)

例如,新建一个简单项目:

hello/
├── CMakeLists.txt
└── main.cpp

main.cpp 内容可以是标准的 "Hello, World!";CMakeLists.txt 至少要指定最低CMake版本、项目名和可执行文件构建规则:

cmake_minimum_required(VERSION 3.10)
project(hello)

add_executable(hello main.cpp)

第二步:生成构建文件(out-of-source 构建)

推荐在单独的构建目录中运行 CMake,避免污染源码。例如:

mkdir build && cd build
cmake ..  # 从上级目录读取 CMakeLists.txt

这会根据当前平台自动选择生成器(Linux/macOS 默认 Makefile,Windows 默认 Visual Studio)。你也可以显式指定:

  • cmake -G "Unix Makefiles" ..
  • cmake -G "Ninja" ..(需提前安装 Ninja)
  • cmake -G "Visual Studio 17 2025" -A x64 ..(Windows)

第三步:编译与运行

生成完成后,在构建目录中调用对应构建工具:

  • Makefile:运行 make(或 make hello
  • Ninja:运行 ninja(或 ninja hello
  • Visual Studio:打开生成的 hello.sln 文件,或用命令 cmake --build .

构建成功后,可执行文件出现在构建目录下(如 build/hello),直接运行即可。

进阶提示:常用配置项

实际项目中常需要设置标准、优化选项、查找依赖等。例如:

  • 指定C++标准:set(CMAKE_CXX_STANDARD 17)
  • 开启调试信息:set(CMAKE_BUILD_TYPE Debug)(在 cmake 命令中加 -DCMAKE_BUILD_TYPE=Debug 更常用)
  • 添加头文件路径:target_include_directories(hello PRIVATE include/)
  • 链接第三方库:find_package(Threads REQUIRED) + target_link_libraries(hello Threads::Threads)

这些都写在 CMakeLists.txt 中,CMake 会自动处理平台差异。

不复杂但容易忽略:每次修改 CMakeLists.txt 后,如果已生成过构建文件,只需在构建目录里重新运行 cmake .cmake ..,无需删掉整个 build 目录(除非改了生成器或关键变量)。


# linux  # windows  # 工具  # mac  # ai  # unix  # c++  # macos  # win  # cos  # red  # include  # private  # visual studio  # 可执行文件  # 进阶  # 放在  # 出现在  # 只需  # 目录中  # 再用  # 第三方  # 它不  # 写在 


相关文章: 网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  兔展官网 在线制作,怎样制作微信请帖?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何用y主机助手快速搭建网站?  ,想在网上投简历,哪几个网站比较好?  西安专业网站制作公司有哪些,陕西省建行官方网站?  制作网站怎么制作,*游戏网站怎么搭建?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  海南网站制作公司有哪些,海口网是哪家的?  建站之星安装提示数据库无法连接如何解决?  红河网站制作公司,红河事业单位身份证如何上传?  专业网站建设制作报价,网页设计制作要考什么证?  电商网站制作公司有哪些,1688网是什么意思?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  测试制作网站有哪些,测试性取向的权威测试或者网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  南京网站制作费用,南京远驱官方网站?  如何选择建站程序?包含哪些必备功能与类型?  如何在新浪SAE免费搭建个人博客?  家具网站制作软件,家具厂怎么跑业务?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  如何通过远程VPS快速搭建个人网站?  微信推文制作网站有哪些,怎么做微信推文,急?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  网站制作的步骤包括,正确网址格式怎么写?  建站主机是否等同于虚拟主机?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  智能起名网站制作软件有哪些,制作logo的软件?  css网站制作参考文献有哪些,易聊怎么注册?  如何在Tomcat中配置并部署网站项目?  如何用PHP快速搭建高效网站?分步指南  如何自定义建站之星模板颜色并下载新样式?  油猴 教程,油猴搜脚本为什么会网页无法显示?  C#如何序列化对象为XML XmlSerializer用法  制作电商网页,电商供应链怎么做?  建站与域名管理如何高效结合?  ,怎么在广州志愿者网站注册?  如何在阿里云香港服务器快速搭建网站?  建站之星北京办公室:智能建站系统与小程序生成方案解析  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何制作算命网站,怎么注册算命网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何配置IIS站点权限与局域网访问?  XML的“混合内容”是什么 怎么用DTD或XSD定义  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  七夕网站制作视频,七夕大促活动怎么报名?  Python路径拼接规范_跨平台处理说明【指导】 

您的项目需求

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