搜索
您的当前位置:首页正文

CMake生成器

来源:吉趣旅游网


介绍

首先介绍一下CMake吧,CMake是一个跨平台的自动化构建系统,用于管理项目构建过程。它可以生成各种编译环境所需的Makefile、工程文件,从而使得开发者能够在不同的平台和编译器上构建他们的项目。CMake生成器是CMake中用于生成特定构建系统所需的配置文件的组件。


生成器的种类

1. Unix Makefiles

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使用/配置生成器

mkdir build
cd build
cmake -G "GeneratorName" ..

其中,GeneratorName为需要使用的生成器名称,例如Visual Studio 16 2019Ninja


IDE使用/配置生成器

1.VScode

2. Visual studio

  1. 菜单栏中打开CMake设置,点击。
  2. 在打开在文件中,在不同的配置中找到generator参数,设置为你需要的生成器即可。

3. Qt Creator

  1. 打开Qt Creator,选择"File" > “Open File or Project”,然后选择项目根目录下的CMakeLists.txt文件。
  2. Qt Creator会自动识别并配置CMake项目。在"Projects"标签页中,你可以修改CMake配置,例如设置构建目录或添加CMake命令行选项。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top