小编Tom*_*ter的帖子

改变我的工具链架构(在 gentoo 中)

这在某种程度上是 gentoo 特定的,所以我将在那个上下文中解释它,然后尝试将它抽象为一个通用的 linux 机器。

当我的机器是Athlon64时,我一开始不小心将我的CHOST设置为“i686-pc-linux-gnu”,没有注意。我想将其更改为“x86_64-pc-linux-gnu”。 有一个指南。 它不起作用。

第一步是“重新编译binutils,然后重新编译gcc”

这是说明的问题:

  1. 使用 gcc 编译 binutils - 这会成功生成新的 as、ar 等文件
  2. 打破了gcc。gcc 现在正在尝试使用新的 /usr/bin/as - 但它不能与它们一起使用
  3. 因为gcc什么都编译不了,所以我也编译不了gcc。我必须恢复为,ar 等;然后恢复 CHOST 更改,并重新编译 binutils。

所以我尝试了以下方法:

  1. 备份为、ar 等
  2. 编译 binutils,使 gcc 无法运行
  3. 将 ar、as 等链接到我备份的旧版本
  4. 尝试编译 gcc

gcc 编译失败:

/usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
/usr/x86_64-pc-linux-gnu/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

是一个 glibc 错误(完成链)。

所以它看起来:

  1. 为了让 gcc 编译它依赖于新版本的 glibc
  2. 要运行 …

gentoo gcc toolchain cross-compilation

5
推荐指数
0
解决办法
1324
查看次数

标签 统计

cross-compilation ×1

gcc ×1

gentoo ×1

toolchain ×1