CMake 详解:跨平台构建系统的入门与进阶

目录

一、相关知识点

1. 什么是cmake,为什么使用?

 2. 构建过程

二、CMake使用流程

1. 创建 CMakeLists.txt 文件

2. 配置构建目录

 3. 运行cmake

4. 运行make编译


一、相关知识点

1. 什么是cmake,为什么使用?

        CMake 是一个开源的跨平台构建工具,它能够通过简单的描述文件来生成标准化的构建系统。它的主要目标是简化构建过程,特别是在多平台和多编译器的环境下。CMake 可以自动处理编译器设置、依赖关系、目标生成等任务,避免了手动配置Makefile的复杂性,因为在复杂工程文件中,Makefile的依赖关系难以确定,手动编写复杂性很高。

        CMake 的优势之一是支持多种操作系统平台,包括 Windows、Linux 和 macOS,这使得它成为了跨平台开发中不可或缺的工具。简而言之:就是可以根据描述文件CMakeLists.txt来自动生成Makefile文件。

 2. 构建过程

        CMake 的核心工作是通过一个称为 CMakeLists.txt 的配置文件来定义构建过程。这个文件包含了一些基本的指令,如指定源文件、设置编译选项、定义依赖项等。开发者通过这个文件告诉 CMake 如何构建项目,CMake 根据这些信息自动生成平台特定的构建文件。        

        即:CMake 不需要你手动指定编辑器或编译器,它会根据你所使用的操作系统和编译环境自动选择适合的工具。这是 CMake 的一个非常强大且方便的特性。

        具体来说,CMake 会根据系统环境自动识别并选择合适的编译器(如 GCC、Clang、MSVC 等),以及其他构建工具(如 Make、Ninja、Visual Studio 等)。当你运行 cmake 命令时,它会检查你的系统并生成适用于该平台的构建文件。例如:

  • 在 Linux 系统中,CMake 会默认使用 gccclang 作为编译器,并生成适用于 make 工具的 Makefile。

  • 在 Windows 系统中,CMake 会检查你是否安装了 Visual Studio,并根据环境生成 Visual Studio 的解决方案文件(.sln)。

二、CMake使用流程

1. 创建 CMakeLists.txt 文件

        CMake 的核心是 CMakeLists.txt 文件(名称不能随意更改!必须为CMakeLists.txt ),这是用来配置构建过程的脚本。我们需要在项目的根目录下创建一个 CMakeLists.txt 文件,内容包含项目名称、编译选项、依赖关系等信息。简单示例如下:

CMakeLists.txt

# 最低 CMake 版本要求:指定项目所需的最低 CMake 版本
cmake_minimum_required(VERSION 3.10)
#项目名称
project(MyProject)

# 设置C++标准
#set(CMAKE_CXX_STANDARD 11)

# 添加可执行文件,将所有相关文件都添加进来,生成可执行程序
add_executable(MyExecutable main.c add.c sub.c test.c)

2. 配置构建目录

        CMake 采用外部构建目录的方式,即将构建后的文件放在一个独立的目录中,而不是在源代码目录中。这有助于保持源代码目录的清洁,方便管理不同平台的构建输出。

        使用命令:mkdir build,生成build目录。结构目录如下所示:

MyProject/
├── CMakeLists.txt     <-- CMake配置文件
├── src/
│   └── main.cpp       <-- 源代码文件
└── build/             <-- 构建输出目录

 3. 运行cmake

        进入build目录下,使用命令:cmake .. 运行cmake。其中..表示CMakeLists.tx在上级目录中。运行完成后,目录结构如下所示:

MyProject/
├── CMakeLists.txt     <-- CMake配置文件
├── src/
│   └── main.cpp       <-- 源代码文件
└── build/             <-- 构建输出目录
    ├── CMakeFiles/    <-- CMake生成的构建文件
    ├── Makefile       <-- 生成的 Makefile 文件
    └── (其他构建文件) <-- 构建生成的其他文件

4. 运行make编译

         上一步中生成了Makefile文件,那么我们就可以进行程序的编译了。在build目录下使用命令:make进行编译。编译完成后,会在该目录下生成可执行文件,目录结构如下所示:

MyProject/
├── CMakeLists.txt    <-- CMake配置文件
├── src/
│   └── main.cpp      <-- 源代码文件
└── build/            <-- 构建目录
    ├── CMakeFiles/   <-- CMake生成的内部文件
    ├── Makefile      <-- Makefile文件
    └── MyExecutable  <-- 生成的可执行文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值