如何在 Linux 上构建同时构建 32 位和 64 位代码的 gcc 编译器

roh*_*san 1 linux gcc ubuntu-16.04

我按照以下 URL 中的说明为 Linux 构建了 gcc 编译器:

https://solarianprogrammer.com/2016/10/07/building-gcc-ubuntu-linux/

生成的编译器可以毫无问题地构建 64 位代码。

但是,当我尝试构建 32 位代码(通过指定 -m32 编译器选项)时,出现错误。

以下是我收到的错误:

  1. 找不到-lstdc++
  2. 找不到-lgcc_s
  3. 搜索 foor -lgcc 时跳过不兼容的 libgcc.a
  4. 找不到-lgcc

显然,当我构建编译器时,我做错了一些事情 - 谁能告诉我我做错了什么以及如何重建编译器以构建 32 位和 64 位代码。

Chr*_*odd 5

您至少需要--with-multilib-list=m32,m64在configure命令行上进行配置。1 您绝对不需要配置--disable-multilib. 您可能还需要构建和安装其他库的附加版本。

一般来说,搜索“multilib”文档将向您显示所有讨论使用多个目标 ABI 构建或使用 gcc 的地方。


1至少在某些版本的 gcc 上这是默认设置。mx32如果您想尝试一下,也可以添加。