我正在尝试从源代码安装 GCC。我正在按照 wiki 上的说明进行操作https://gcc.gnu.org/wiki/InstallingGCC还有关于这个问题关于SO。运行时我在配置步骤中遇到问题:
$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2
我得到以下输出和错误:
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for libatomic support... yes
checking for libcilkrts support... no
checking for libitm support... yes
checking for libsanitizer support... yes
checking for libvtv support... yes
checking for libmpx support... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/bin/objdir':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
我看起来好像错误是因为没有安装 C 编译器。这让我很困惑,因为安装 GCC 应该做的不是安装 C 编译器吗?我能找到的针对此错误的所有解决方案都说我需要安装GCC,那么如果我需要安装GCC来执行此操作,我该如何安装GCC呢?
我已经使用更新了我的 $PATH 变量export PATH=$PATH:/usr/bin/gcc-4.6.2
,但没有帮助。我也看过这个类似的问题但没有成功:https://unix.stackexchange.com/questions/310669/c-compiler-while-installing-gcc
我有什么遗漏的吗?我还能做什么来安装 GCC?
注意:我不能只使用 yum 或 apt-get 来安装它,因为我使用的自定义发行版没有安装这些类型的安装程序软件。
答案1
GCC 本身是用 C 编写的。因此,为了安装它,您需要一个 C 编译器。这是第 22 条军规。你没有遗漏任何东西。事实上,有一个相当著名的肯·汤普森文章“对信任信任的反思”反思相关方面。
你需要从某个地方获得一个 C 编译器。无论谁构建了您的自定义发行版,都肯定拥有一个,因为没有它您也无法构建 Linux 内核。他们应该在某个地方提供它。
除此之外,您必须从可以安装编译器的发行版交叉编译 gcc(以及 binutils 和 C 库头文件等)。这就是某人为新平台构建发行版的方式。还有一种可能是,如果您的平台是嵌入式的,那么没有人希望您在设备本身上运行 gcc,而是希望您交叉编译设备所需的任何软件。在这种情况下,您的嵌入式发行版应该提供可供使用的交叉编译器。
答案2
我在使用 Windows 10 中的 Ubuntu 子系统时遇到了这个问题,并通过执行以下操作解决了该问题:
sudo apt-get update
sudo apt install build-essential
或者,第二个命令可以更具体:
sudo apt install gcc