CMake生成器
介绍
首先介绍一下CMake吧,CMake是一个跨平台的自动化构建系统,用于管理项目构建过程。它可以生成各种编译环境所需的Makefile、工程文件,从而使得开发者能够在不同的平台和编译器上构建他们的项目。CMake生成器是CMake中用于生成特定构建系统所需的配置文件的组件。
生成器的种类
1. Unix Makefiles
用于生成Unix平台上的Makefile。
支持的编译器:
- GCC(GNU Compiler Collection)
- Clang(C Language Family Frontend for LLVM)
- ICC(Intel C++ Compiler)
- 其他类Unix平台的编译器,如Solaris Studio、HP-UX、AIX等
2. Ninja
用于生成Ninja构建文件,这是一个高性能的构建系统。
支持的编译器:
- GCC
- Clang
- ICC
- 在Windows平台上,还支持:
- MSVC(Microsoft Visual C++ Compiler)
- MinGW(Minimalist GNU for Windows)
3. Visual Studio
用于生成Microsoft Visual Studio工程文件,例如"Visual Studio 16 2019"代表Visual Studio 2019。
支持的编译器:
- MSVC
- Clang with Microsoft CodeGen(Clang编译器,但使用Microsoft编译器后端)
4. Xcode
用于生成苹果Xcode项目文件。
支持的编译器:
- Clang(Xcode默认集成的编译器)
- GCC(较老的Xcode版本支持)
5. 其他:CodeBlocks、Eclipse CDT4、 CodeLite
支持的编译器:
- 根据IDE的配置和所在平台,支持的编译器可能有所不同。常见的编译器包括GCC、Clang、ICC、MSVC等。
生成器与编译器的关系
生成器和编译器在构建过程中分别扮演不同的角色。生成器主要负责根据项目的源代码和构建配置,为特定构建系统生成所需的配置文件(例如Makefile、工程文件等)。编译器则是实际将源代码编译成目标代码(例如机器代码、字节码等)的工具。生成器与编译器的关系如下:
-
生成器依赖于编译器:生成器在生成构建配置文件时,需要知道使用哪个编译器。例如,CMake在为Visual Studio生成工程文件时,需要知道使用Visual C++编译器。同样,在为Unix Makefiles生成Makefile时,需要知道使用GCC或Clang等编译器。生成器会为特定编译器生成相应的构建命令和选项,以便正确地编译项目。
-
编译器不直接依赖于生成器:编译器只负责将源代码编译成目标代码,与生成器无直接关系。但编译器需要通过生成器生成的配置文件(例如Makefile、工程文件等),了解如何编译源代码,包括源文件的位置、编译选项、依赖库等信息。因此,生成器对于编译器来说是一个间接的依赖关系。
-
生成器和编译器共同完成构建任务:在整个构建过程中,生成器和编译器需要协同工作。首先,生成器根据项目配置生成构建系统所需的配置文件。然后,构建系统(如Make、Ninja等)会根据这些配置文件调用编译器,将源代码编译成可执行文件、库文件或其他目标文件。最后,可能还需要进行链接、打包等操作,将编译好的目标文件组装成最终的产品。
总之,生成器和编译器在构建过程中有密切的关系。生成器负责为特定构建系统生成配置文件,而编译器负责根据这些配置文件将源代码编译成目标代码。二者共同协作,完成项目的构建任务。
非IDE使用/配置生成器
- 安装CMake:根据你的操作系统,从官网下载安装。
- 创建
CMakeLists.txt
文件:在项目根目录下创建一个名为CMakeLists.txt
的文件,然后编写构建规则和配置。 - 生成构建文件:打开终端或命令提示符,进入项目根目录,执行如下命令:
mkdir build
cd build
cmake -G "GeneratorName" ..
其中,GeneratorName为需要使用的生成器名称,例如
Visual Studio 16 2019
或Ninja
。
IDE使用/配置生成器
1.VScode
2. Visual studio
- 菜单栏中打开CMake设置,点击调整JSON。
- 在打开在文件中,在不同的配置中找到
generator
参数,设置为你需要的生成器即可。
3. Qt Creator
- 打开Qt Creator,选择"File" > “Open File or Project”,然后选择项目根目录下的CMakeLists.txt文件。
- Qt Creator会自动识别并配置CMake项目。在"Projects"标签页中,你可以修改CMake配置,例如设置构建目录或添加CMake命令行选项。