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)
立即学习“C++免费学习笔记(深入)”;
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_*系列命令如何精准控制每个目标的行为。
以上就是C++如何使用CMake来构建项目?(入门指南)的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1489703.html
微信扫一扫
支付宝扫一扫