HoRain云--CMake入门指南:从零到跨平台构建

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

CMake 是一个跨平台的开源构建系统生成器。它不直接构建你的软件,而是根据一个名为 CMakeLists.txt的配置文件,为你熟悉的构建工具(如 Unix/Linux 下的 Make 或 Windows 下的 Visual Studio 项目)生成相应的构建文件。
简单来说,CMake 让你只需写一份配置,就能在各种平台上生成对应的构建脚本。
为什么要用 CMake?
-
跨平台:一份配置,在 Windows (VS/MSBuild)、macOS (Xcode)、Linux/Unix (Makefile, Ninja) 上都能构建。
-
管理复杂项目:轻松处理多目录、多库、多可执行文件的项目结构。
-
依赖管理:可以查找系统中的库(如 OpenCV, Boost),或集成第三方代码。
核心概念
-
CMakeLists.txt
-
这是项目的“说明书”和“构建清单”,CMake 通过读取它来了解如何构建你的项目。
-
项目根目录必须有一个,子目录可以有各自的
CMakeLists.txt。
-
-
构建流程(源外构建)
CMake 推荐使用“源外构建”,即生成的文件和源代码分开,避免污染源码目录。
your_project/ ├── CMakeLists.txt # 源码目录 ├── src/ └── build/ # 新建的构建目录典型命令流程:
mkdir build && cd build # 1. 创建并进入构建目录 cmake .. # 2. 生成构建文件(.. 表示上一级,即源码目录) cmake --build . # 3. 执行构建(或直接用 make/ninja/打开.sln) -
变量
-
CMAKE_CXX_STANDARD: 设置 C++ 标准(如 11, 14, 17)。 -
PROJECT_NAME: 项目名。 -
CMAKE_CXX_FLAGS: 编译器标志。
-
-
常用命令
-
cmake_minimum_required(VERSION 3.10): 指定所需 CMake 最低版本。 -
project(MyProject VERSION 1.0): 定义项目名称和版本。 -
add_executable(my_app main.cpp): 添加一个可执行目标。 -
add_library(my_lib STATIC lib.cpp): 添加一个库目标(STATIC静态库,SHARED动态库)。 -
target_include_directories(...): 为指定目标添加头文件搜索路径。 -
target_link_libraries(my_app PRIVATE my_lib): 为指定目标链接库。 -
find_package(OpenCV REQUIRED): 查找系统中的包。
-
一个最小的 CMakeLists.txt 示例
假设项目只有一个 main.cpp文件:
# CMakeLists.txt
cmake_minimum_required(VERSION 3.10) # 1. 设置最低版本
project(HelloWorld) # 2. 定义项目名
set(CMAKE_CXX_STANDARD 11) # 3. 设置 C++ 标准为 C++11
add_executable(hello main.cpp) # 4. 告诉 CMake 创建名为 “hello” 的可执行文件,从 main.cpp 构建
基础总结
-
写配置: 在项目根目录创建
CMakeLists.txt。 -
生成: 在
build目录运行cmake [源码路径],生成本地构建系统文件(如 Makefile)。 -
构建: 运行
cmake --build .或相应的构建命令(如make)来编译链接,生成最终程序。
掌握这些,你就能开始用 CMake 管理简单的 C/C++ 项目了。后续可以深入学习如何管理多文件、子目录、链接库以及更高级的模块和函数。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)