全网整合营销服务商

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

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

C++如何使用CMake来构建项目?(入门指南)

CMake构建C++项目的核心是编写CMakeLists.txt并执行“配置→构建”两阶段流程:先用cmake生成构建文件,再用cmake --build调用底层工具编译;支持跨平台、不依赖IDE、可复用。

用CMake构建C++项目,核心是写好CMakeLists.txt,然后用命令行驱动生成和编译。不依赖IDE、跨平台、可复用——这是它最实在的好处。

准备一个最小可运行的CMake项目

先建个简单结构:

  • my_project/
  •  ├── CMakeLists.txt
  •  └── main.cpp

main.cpp里写个“Hello World”;CMakeLists.txt内容如下:

cmake_minimum_required(VERSION 3.10)
project(MyApp)

set(CMAKE_CXX_STANDARD 17)

add_executable(MyApp main.cpp)

这四行就定义了:最低CMake版本、项目名、C++标准、要生成的可执行文件及源码。

从配置到编译:三步走

打开终端,进入my_project目录后执行:

  • mkdir build && cd build —— 创建独立构建目录(推荐,避免污染源码)
  • cmake .. —— 从上级目录读取CMakeLists.txt,生成本地构建文件(如Unix Makefiles或Visual Studio方案)
  • cmake --build . —— 调用底层构建工具(make、ninja等)完成编译

成功后,build/MyApp(Linux/macOS)或build/MyApp.exe(Windows)就能直接运行。

添加头文件和多源文件支持

如果项目有include/目录和多个.cpp文件,修改CMakeLists.txt

include_directories(include)  # 告诉编译器头文件在哪
add_executable(MyApp
    main.cpp
    src/utils.cpp
    src/log.cpp
)

更现代的写法是用target_include_directories(推荐):

add_executable(MyApp main.cpp src/utils.cpp src/log.cpp)
target_include_directories(MyApp PRIVATE include)

PRIVATE表示头路径只用于MyApp本身,不影响它依赖的其他目标。

链接第三方库(以fmt为例)

假设你用vcpkg或手动安装了fmt库:

  • find_package(fmt REQUIRED)查找库
  • target_link_libraries(MyApp PRIVATE fmt::fmt)链接

完整示例:

find_package(fmt REQUIRED)
add_executable(MyApp main.cpp)
target_link_libraries(MyApp PRIVATE fmt::fmt)

CMake会自动处理头文件路径和链接参数,不用硬编码-I-lfmt

基本上就这些。CMake入门不难,关键是理解“配置(cmake)→ 构建(cmake --build)”的两阶段逻辑,以及target_*系列命令如何精准控制每个目标的行为。


# linux  # windows  # 编码  # app  # 工具  # mac  # ai  # unix  # c++  # macos  # win  # cos  # red  # include  # private  # ide  # visual studio  # 头文件  # 复用  # 这是  # 不依赖  # 就能  # 多个  # 为例  # 再用  # 第三方  # 你用 


相关文章: Python多线程使用规范_线程安全解析【教程】  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何用已有域名快速搭建网站?  建站之星24小时客服电话如何获取?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  开封网站制作公司,网络用语开封是什么意思?  公司网站制作价格怎么算,公司办个官网需要多少钱?  建站主机类型有哪些?如何正确选型  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  为什么Go需要go mod文件_Go go mod文件作用说明  如何在腾讯云免费申请建站?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何在景安服务器上快速搭建个人网站?  ,制作一个手机app网站要多少钱?  招商网站制作流程,网站招商广告语?  郑州企业网站制作公司,郑州招聘网站有哪些?  如何用花生壳三步快速搭建专属网站?  建站之星2.7模板快速切换与批量管理功能操作指南  如何在七牛云存储上搭建网站并设置自定义域名?  如何通过wdcp面板快速创建网站?  IOS倒计时设置UIButton标题title的抖动问题  公众号网站制作网页,微信公众号怎么制作?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  如何在建站之星绑定自定义域名?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何通过云梦建站系统实现SEO快速优化?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  想学网站制作怎么学,建立一个网站要花费多少?  如何在Windows虚拟主机上快速搭建网站?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  盐城做公司网站,江苏电子版退休证办理流程?  python的本地网站制作,如何创建本地站点?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何快速查询网址的建站时间与历史轨迹?  如何选择高效响应式自助建站源码系统?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  实例解析Array和String方法  如何通过可视化优化提升建站效果?  宁波免费建站如何选择可靠模板与平台?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  高防服务器如何保障网站安全无虞?  平台云上自主建站:模板化设计与智能工具打造高效网站  官网网站制作腾讯审核要多久,联想路由器newifi官网  佛山网站制作系统,佛山企业变更地址网上办理步骤?  简历在线制作网站免费版,如何创建个人简历?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  桂林网站制作公司有哪些,桂林马拉松怎么报名? 

您的项目需求

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