🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

为什么要用 CMake?

核心概念

一个最小的 CMakeLists.txt 示例

基础总结


img

CMake 是一个跨平台的开源构建系统生成器。它不直接构建你的软件,而是根据一个名为 CMakeLists.txt的配置文件,为你熟悉的构建工具(如 Unix/Linux 下的 Make​ 或 Windows 下的 Visual Studio 项目)生成相应的构建文件。

简单来说,CMake 让你只需写一份配置,就能在各种平台上生成对应的构建脚本。

为什么要用 CMake?

  • 跨平台:一份配置,在 Windows (VS/MSBuild)、macOS (Xcode)、Linux/Unix (Makefile, Ninja) 上都能构建。

  • 管理复杂项目:轻松处理多目录、多库、多可执行文件的项目结构。

  • 依赖管理:可以查找系统中的库(如 OpenCV, Boost),或集成第三方代码。

核心概念

  1. CMakeLists.txt

    • 这是项目的“说明书”和“构建清单”,CMake 通过读取它来了解如何构建你的项目。

    • 项目根目录必须有一个,子目录可以有各自的 CMakeLists.txt

  2. 构建流程(源外构建)

    CMake 推荐使用“源外构建”,即生成的文件和源代码分开,避免污染源码目录。

    your_project/
    ├── CMakeLists.txt  # 源码目录
    ├── src/
    └── build/          # 新建的构建目录

    典型命令流程:

    mkdir build && cd build   # 1. 创建并进入构建目录
    cmake ..                  # 2. 生成构建文件(.. 表示上一级,即源码目录)
    cmake --build .          # 3. 执行构建(或直接用 make/ninja/打开.sln)
  3. 变量

    • CMAKE_CXX_STANDARD: 设置 C++ 标准(如 11, 14, 17)。

    • PROJECT_NAME: 项目名。

    • CMAKE_CXX_FLAGS: 编译器标志。

  4. 常用命令

    • 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 构建

基础总结

  1. 写配置: 在项目根目录创建 CMakeLists.txt

  2. 生成: 在 build目录运行 cmake [源码路径],生成本地构建系统文件(如 Makefile)。

  3. 构建: 运行 cmake --build .或相应的构建命令(如 make)来编译链接,生成最终程序。

掌握这些,你就能开始用 CMake 管理简单的 C/C++ 项目了。后续可以深入学习如何管理多文件、子目录、链接库以及更高级的模块和函数。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐