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

时间:2018-09-07 16:56:41

标签: 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. 搜索-orlcc时跳过不兼容的libgcc.a
  4. 找不到-lgcc

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

1 个答案:

答案 0 :(得分:3)

您至少需要在configure命令行上使用--with-multilib-list=m32,m64进行配置。 1 您肯定需要使用--disable-multilib进行配置。您可能还需要构建和安装其他库的其他版本。

通常,在文档中搜索“ multilib”将为您展示所有有关构建或使用带有多个目标ABI的gcc的地方。


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