从源代码在 chroot 内构建 GCC

从源代码在 chroot 内构建 GCC

在上一个问题中,我询问了如何创建一个模拟我的嵌入式设备环境的 chroot。有人建议我首先在 chroot 中从源代码 GCC 和 binutils 构建。为了尝试此操作,我将主机上的 libc 和 gcc 二进制文件的版本复制到了 chroot。然后我将一个简单的 hello world 程序写入文件 test.c 并尝试在我的 chroot 中构建如下

  phil@phil-desktop:/usr$ sudo chroot /usr/embedded_chroot1/
  bash-4.2# gcc test.c 
  gcc: error trying to exec 'cc1': execvp: No such file or directory

我不太确定这个错误是怎么回事。我已将 gcc 二进制文件和 libc 复制到我的 chroot,为什么我无法编译?我还必须将所有系统源文件和头文件复制到我的 chroot 中吗?我认为我对使用 chroot 的整个过程存在概念上的误解。

答案1

gcc 构建能够在系统上没有任何现有编译器的情况下自行引导。你应该能够下载解压 gcc,并在 chroot 中构建它,而无需从外部复制任何内容。我已经有一段时间没有这样做了,但我记得这是相当无痛的。

看着那(这gcc 的构建说明,其中详细说明了此过程。您将需要构建一个本机编译器,并且所有步骤都应在 chroot 内执行,以便构建 gcc 来匹配该系统。

相关内容