CMake 基于平台分为两个版本,分别为命令行 CLI 版本,图形界面 GUI 版本。CLI 版本一般用于 Linux 系统中,GUI 版本易于在 Windows 系统中使用,当然 GUI 版本在 Windows 系统中同样也可以使用命令行操作。对于 GUI 版本 CMake 来说图形界面图形化操作可以替代 CMake 的控制命令来操作 CMake。
无论是图形界面 GUI 版本还是命令行 CLI 版本的 CMake,其操作都相对简单,这些操作主要是选择路径,选择生成器,启动构建等等。具体生成生成配置文件的规则部分则由我们通过编写 CMakeLists.txt
文件来实现。
注意: 使用前的一个重要前提是已经编写好了 CMakeLists.txt
文件,因为 CMake 运行构建是需要该文件作为输入的。
对于使用 GUI 版本的 CMake第一步当然是启动 CMake 的图形界面,启动后电脑桌面上将呈现如下图所示样式的窗口。
在构建之前需要选择待构建工程的 CMakeLists.txt
所在目录,以及构建输出文件的存放目录。
Where is source code 文本框用于显示待构建工程的 CMakeLists.txt
文件所在的目录(即待构建项目的根目录)点击右边的 Browse Source
为 CMake 选择 CMakeLists.txt 路径。
Where to build the binarys 文本框用于显示构建输出文件的存放目录,一般我们会将构建输出文件的存放目录名称命名为 build
,点击右边的 Browse Build
按钮选择构建路径。
以上两个目录都选择完成后点击 Configure
按钮,来选择我们需要的生成器。
CMake 用于生成配置文件的部件称为 生成器。不同的生成器用于生成不同构建工具的配置。
上一步点击 Configure
按钮之后将弹出如下的窗口,生成器可以通过下拉列表选择,下拉列表会列出已有的生成器,在下拉列表中为待构建工程选择合适的生成器。
选择好生成器之后,编译器选择 Use default native compilers
选项,选择完成后点击 Finish
按钮开始配置。
配置完成后如下图
配置完成后在信息输出框显示 Configuring done
,其中中间的窗口会出现许多红色条目,这些都是项目可用的变量及其参数值,变量的值可以点击红色区域进行更改。每当我们对 CMake 变量值有了新的改动,都需要点击 Configure
按钮,直到所有红色条目都变成白色,且没有编译错误才算完成。
点击 Generate
按钮即开始构建项目,在构建文件输出目录输出构建工具需要的文件,
比如输出构建工具 Make
构建工程时需要的 Makefile
文件。
注意: 使用前的一个重要前提是已经编写好了 CMakeLists.txt
文件,因为 CMake 运行构建是需要该文件作为输入的。
准备一个子文件夹作为 构建目录,习惯上命名为 build
。用 cmake
命令在该目录中生成构建工具的配置。
mkdir build
cd build
cmake -G"MinGW Makefiles" ..
-G
选项表示选择生成器的类型,比如这里选择了 "MinGW Makefiles"
类型的生成器,如果不添加该选项则 CMake 使用默认的生成器。要查看生成器的列表,用 cmake -h
命令(带 *
号的是默认的生成器)例如执行该命令后输出如下内容。
$ cmake -h
Generators
The following generators are available on this platform (* marks default):
Visual Studio 17 2022 = Generates Visual Studio 2022 project files.
Use -A option to specify architecture.
* Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
Use -A option to specify architecture.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
..
表示要在 cmake
命令之后跟上 源目录(即源文件所在目录)的路径,此处为 build
的父目录即 ..
。
在构建目录生成构建工具的配置(例如 make 的 Makefile 文件)后,紧接着就可以调用构建工具开始构建项目了。要调用构建工具,用 --build
选项。选项之后要跟上构建目录的路径。在本示例中,如果是在构建目录中执行该命令,就是当前目录 .
。构建项目使用命令如下
$ cmake --build .
执行该命令时,带上 -v
选项,此时 CMake 会显示实际执行的每个编译和链接命令。
在 Linux 上使用 make 或者在 Windows 上使用 MinGW64 时,生成的可执行文件位于构建目录中即 build
文件夹。
在构建大型项目时,为了加快编译速度,常常向构建工具传递 -j4
或 -m:4
选项来启用 多线程编译。使用命令如下
$ cmake --build . -- -m:4
cmake
命令之前删除缓存。cd build/
进入我们创建的 build
目录。cmake -G "MinGW Makefiles" ../
(非常重要,进入上一级目录,因为进入了 build/
目录后 CMakeLists.txt
文件就在 build/
的上一级目录了。