gpt4 book ai didi

cmake - 什么是 CMake 生成器?

转载 作者:行者123 更新时间:2023-12-03 01:17:21 34 4
gpt4 key购买 nike

我阅读了文档。

它说:

A CMake Generator is responsible for writing the input files for a native build system.

这到底是什么意思?

如果我的项目中有一组 C++ 文件,这些是输入文件吗?

如果我使用 Linux,默认情况下我的 native 构建系统是什么? 制作

如果输入文件已经存在,为什么必须由生成器写入

最佳答案

什么是发电机?

要了解什么是生成器,我们需要首先了解什么是构建系统。 CMake 不编译或链接任何源文件。它使用生成器为构建系统创建配置文件。构建系统使用这些文件来编译和链接源代码文件。

那么什么是构建系统?

构建系统是一个广泛的术语,它将一组通常用于编译和链接源代码的工具组合在一起,但它也可以包括构建过程中使用的辅助工具。

例如,在多阶段构建系统中,可能会构建一个可执行文件以在另一个构建的构建过程中使用。

根据系统上使用的工具链,CMake 将生成多个文件和文件夹,以允许构建 CMakeLists.txt 中引用的源文件并支持 .cmake 文件。

有时,计算机上可能会安装多个构建系统,例如对于 Windows,您可以拥有 Visual Studio 和 MinGW 构建系统。 CMake 允许您指定为哪些构建系统生成配置文件。

CMake 包含许多命令行IDEExtra 生成器。

命令行构建工具生成器

这些生成器适用于命令行构建工具,例如 Make 和 Ninja。在使用 CMake 生成构建系统之前,必须配置所选的工具链。

支持以下内容(**):

Makefile 生成器

  • Borland Makefile
  • MSYS 生成文件
  • MinGW Makefile
  • NMake Makefile
  • NMake Makefile JOM
  • Unix Makefile
  • Watcom WMake

忍者发电机

  • 忍者
  • Ninja 多重配置

IDE 构建工具生成器

这些生成器适用于包含自己的编译器的集成开发环境。例如 Visual Studio 和 Xcode,它们本身就包含编译器。

支持以下内容(**):

  • Visual Studio 6
  • Visual Studio 7
  • Visual Studio 7 .NET 2003
  • Visual Studio 8 2005
  • Visual Studio 9 2008
  • Visual Studio 10 2010
  • Visual Studio 11 2012
  • Visual Studio 12 2013
  • Visual Studio 14 2015
  • Visual Studio 15 2017
  • Visual Studio 16 2019
  • Visual Studio 17 2022
  • 绿山多
  • Xcode

额外的发电机

这些生成器可创建与替代 IDE 工具配合使用的配置,并且必须包含在 IDE 或命令行生成器中。

支持以下内容(**):

  • 代码块
  • 代码精简版
  • Eclipse CDT4
  • KDevelop3(v3.10.3 之后不再支持)
  • 凯特
  • Sublime Text 2

If I have a set of C++ files in my project, are these the input files?

是的,它们是一些输入文件。对于 make 构建系统,您还有一个 MakeFile。对于 Visual Studio,您有一个解决方案文件 (.sln)。对于这两个系统,都需要额外的文件,CMake 知道如何在给定正确的 CMakeLists.txt 文件的情况下创建这些文件。

If I'm using Linux, what is my native build system by default? Make?

一般来说,是的,但也可以像 Ninja 一样设置其他构建系统。

Why do the input files have to be written by the generator if they already exist?

某些源文件可能已经存在,但 CMake 具有生成头文件和源文件的能力。另外如上所述,必须生成一些配置文件,这些文件取决于 CMakeLists.txt 文件中提供的源文件。

** 根据 CMake 版本的文档 3.9 & 3.15 & 3.25

关于cmake - 什么是 CMake 生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941536/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com