CMake
基本概念
CMake 是一个跨平台的构建系统,能够生成针对多种编译器和 IDE 的构建脚本。它通常用于处理较大的 C++ 项目,并且与 g++ 配合得很好。
CMake 的示例:
在 Linux 系统下,新建一个工程文件夹 myproject,以此为工程根目录,文件夹下新建一个 CPP 代码文件 main.cpp,填入可以编译的代码,然后新建一个 CMakeLists.txt 文件,写入如下内容:
# 指定最低版本要求
cmake_minimum_required(VERSION 3.10)
# 项目名称
project(MyProject)
# 指定 C++ 标准
set(CMAKE_CXX_STANDARD 17)
# 添加可执行文件
add_executable(myexecutable main.cpp)
随后遵循如下流程构建可执行文件:
新建 build 文件夹并进入:
mkdir build
cd build
使用 cmake 生成 Makefile:
cmake ..
使用 make 编译出可执行文件:
make
此时,根据上面 CMakeLists.txt 的配置,build 文件夹下会生成一个可执行文件 myexecutable,它就是 main.cpp 编译出来的可执行文件。
CMake 与 Make 关系
从以上流程可以看到,编译需要先运行 CMake 再运行 make。CMake 和 Make 是两个不同的工具,它们的关系可以理解为 CMake 生成 Make 可以使用的构建脚本。具体来说:
- CMake 是一个跨平台的构建系统生成器。它的作用是根据项目的配置文件
CMakeLists.txt生成构建系统所需的脚本,比如针对 Unix 系统的Makefile,或者其他编译器和 IDE 支持的项目文件(如 Visual Studio 的.sln文件)。 - Make 是一个构建工具,通常在 Unix 系统上使用。它根据
Makefile中的规则来执行编译、链接等步骤,最终生成可执行文件。Makefile包含了编译目标、依赖关系和编译命令。
BEYOND THE ARTICLE
读完了,有什么想法?
阅读已保存的问答示例,并循着引用回到原文。
— 本文完 — 返回文章列表