CMake构建C++项目的核心是编写CMakeLists.txt并执行“配置→构建”两阶段流程:先用cmake生成构建文件,再用cmake --build调用底层工具编译;支持跨平台、不依赖IDE、可复用。
用CMake构建C++项目,核心是写好CMakeLists.txt,然后用命令行驱动生成和编译。不依赖IDE、跨平台、可复用——这是
它最实在的好处。
先建个简单结构:
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本身,不影响它依赖的其他目标。
假设你用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
# 头文件
# 复用
# 这是
# 不依赖
# 就能
# 多个
# 为例
# 再用
# 第三方
# 你用
相关文章:
建设网站制作价格,怎样建立自己的公司网站?
做企业网站制作流程,企业网站制作基本流程有哪些?
Android滚轮选择时间控件使用详解
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
韩国服务器如何优化跨境访问实现高效连接?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
金*站制作公司有哪些,金华教育集团官网?
建站10G流量真的够用吗?如何应对访问高峰?
宝塔新建站点为何无法访问?如何排查?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
建站之星云端配置指南:模板选择与SEO优化一键生成
如何快速查询网址的建站时间与历史轨迹?
建站主机如何选?高性价比方案全解析
如何在建站之星网店版论坛获取技术支持?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何用低价快速搭建高质量网站?
深圳网站制作平台,深圳市做网站好的公司有哪些?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
中山网站制作网页,中山新生登记系统登记流程?
C++如何编写函数模板?(泛型编程入门)
Thinkphp 中 distinct 的用法解析
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
电商网站制作价格怎么算,网上拍卖流程以及规则?
安徽网站建设与外贸建站服务专业定制方案
微课制作网站有哪些,微课网怎么进?
大连网站制作公司哪家好一点,大连买房网站哪个好?
移民网站制作流程,怎么看加拿大移民官网?
如何在香港免费服务器上快速搭建网站?
IOS倒计时设置UIButton标题title的抖动问题
建站之星免费版是否永久可用?
如何用y主机助手快速搭建网站?
建站之星如何实现五合一智能建站与营销推广?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
如何快速搭建FTP站点实现文件共享?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
如何快速辨别茅台真假?关键步骤解析
c# Task.ConfigureAwait(true) 在什么场景下是必须的
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
定制建站策划方案_专业建站与网站建设方案一站式指南
建站之星导航菜单设置与功能模块配置全攻略
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
盐城做公司网站,江苏电子版退休证办理流程?
高端建站三要素:定制模板、企业官网与响应式设计优化
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
网站微信制作软件,如何制作微信链接?
如何在阿里云虚拟主机上快速搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。