为什么 Linux 默认有 C 编译器?

Des*_*PRG 3 linux compiling c

为什么 Linux 发行版要提前安装 gcc?是不是因为linux中的大部分应用程序都是用C编写的?

如果删除 gcc 目录会发生什么?

Hen*_*nes 15

为什么 Linux 发行版要提前安装 gcc?

一个Linux发行版是相当含糊。有些安装它,大多数提供安装它(可能即使您在安装过程中选择了默认值)。但是,并非所有发行版都会安装它,您通常可以选择。

是不是因为 Linux 中的大部分应用程序都是用 C 编写的?

不。一个 C 编译器(任何 C 编译器,GCC只是一个例子,它也可能是clang/lvm或其他东西)非常方便。不仅在 Linux 系统上,而且在 BSD 或 Windows 安装上。

如果删除 gcc 目录会发生什么?

假设他们没有安装依赖于 GCC 任何部分(或其一部分,例如预处理器)的程序,那么一切都将继续正常工作。您无法使用刚刚删除的 GCC 版本编译任何新的 C 程序。如果它是最后一个 C 编译器(您可以安装多个编译器),那么如果您以后要编译任何 C 程序,则需要使用二进制包重新安装它。

请注意,如果删除 gcc 目录会发生什么?我假设您会使用适当的包管理器删除它。在任何操作系统上随机删除目录都不是一件安全的事情。

  • 此外,据我所知,POSIX 要求在符合 POSIX 标准的系统中使用可用的 C 编译器。所以,如果一个发行版想要尽可能接近 POSIX,它需要一个 C 编译器。 (3认同)
  • @liori AFAIR,C 编译器是所有 POSIX 版本中 (C) 开发选项的一部分。您不需要一个来声明 POSIX 一致性,只需声明与该选项的一致性。 (2认同)