第13章 选择生成器和交叉编译

本章主要内容有:

  • 使用Visual Studio 2017构建CMake项目
  • 交叉编译hello world示例
  • 使用OpenMP并行化交叉编译Windows二进制文件

CMake本身不构建可执行程序和库。不过,CMake配置一个项目,并生成构建工具或框架用于构建项目的文件。在GNU/Linux和macOS上,CMake通常生成Unix Makefile(也存在替代方式)。在Windows上,通常生成Visual Studio项目文件或MinGW或MSYS Makefile。CMake包括本地构建工具或集成开发环境(IDE)的生成器。可以通过以下链接阅读更多关于它们的信息:https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html

可以使用cmake -G的方式来选择生成器:

  1. $ cmake -G "Visual Studio 15 2017"

不是每个平台上所有的生成器都可用,而且CMake在运行时获取平台信息。要查看当前平台上所有可用生成器的列表,请键入以下命令:

  1. $ cmake -G

本章中,我们不会使用所有生成器,但是本书中的大多数示例都使用了Unix Makefile、MSYS Makefile、Ninja和Visual Studio 15 2017进行了测试。

我们将重点讨论Windows平台上的开发,将演示不使用命令行,如何使用Visual Studio 15 2017直接构建CMake项目。还会讨论如何在Linux或macOS系统上,交叉编译Windows的可执行文件。