CMake 是一个跨平台的自动化构建系统,它使用一个名为 CMakeLists.txt 的配置文件来生成标准的构建文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 解决方案。CMake 能够处理复杂的依赖关系和多种编译器和工具链,因此它非常适合用于大型项目和多平台开发。
下面是一个简单的 CMake 入门案例,它展示了如何构建一个基本的 C 语言程序。
-
创建 C 源文件:
首先,创建一个名为main.c
的 C 语言源文件,内容如下:// main.c #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; }
-
创建 CMakeLists.txt:
在与main.c
同级的目录中创建一个名为CMakeLists.txt
的文件,并添加以下内容:# 指定 CMake 的最低版本要求 cmake_minimum_required(VERSION 3.0) # 定义项目名称和语言 project(HelloWorld LANGUAGES C) # 添加一个可执行文件 add_executable(HelloWorld main.c)
这个
CMakeLists.txt
文件做了以下几件事情:- 指定了 CMake 的最低版本要求。
- 定义了一个名为
HelloWorld
的项目,并指出该项目使用 C 语言。 - 通过
add_executable
命令,告诉 CMake 需要从main.c
源文件构建一个可执行文件。
-
构建项目:
在命令行中,使用 CMake 生成构建系统,然后编译项目:# 创建一个构建目录 mkdir build && cd build # 生成构建系统 cmake .. # 构建项目 make
或者,如果你在 Windows 上,并且安装了 Visual Studio,构建过程可能是这样的:
# 创建一个构建目录 mkdir build && cd build # 生成 Visual Studio 解决方案 cmake -G "Visual Studio 16" .. # 打开解决方案并构建项目 start HelloWorld.sln
-
运行程序:
构建完成后,你可以在构建目录中找到HelloWorld
可执行文件,并运行它:./HelloWorld # 在 Linux 或 macOS 上 .\HelloWorld # 在 Windows 上
这个案例展示了 CMake 的基本用法。CMake 的强大之处在于它能够处理更复杂的项目设置,包括多个目标、依赖关系、编译选项和跨平台构建。随着项目的增长,CMake 的优势会变得更加明显。