【发布时间】:2019-02-13 01:22:56
【问题描述】:
我按照以下 URL 中的说明为 Linux 构建了 gcc 编译器:
https://solarianprogrammer.com/2016/10/07/building-gcc-ubuntu-linux/
生成的编译器可以毫无问题地构建 64 位代码。
但是,当我尝试构建 32 位代码(通过指定 -m32 编译器选项)时,出现错误。
这是我得到的错误:
- 找不到 -lstdc++
- 找不到-lgcc_s
- 搜索 foor -lgcc 时跳过不兼容的 libgcc.a
- 找不到-lgcc
显然,当我构建编译器时,我做错了 - 谁能告诉我我做错了什么以及如何重新构建编译器来构建 32 位和 64 位代码。
【问题讨论】:
-
所有这些都是抱怨它找不到 32 位版本的库。您可能需要构建这些以及构建编译器本身。
-
这是链接中的配置行:../gcc-8.1.0/configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target =x86_64-linux-gnu --prefix=/usr/local/gcc-8.1 --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --program-suffix=-8.1
-
该行为主机、构建和目标指定 x86_64。这是否意味着我必须构建一个可以构建 32 位代码的单独编译器?或者如果我只是构建 32 个库并重复构建编译器本身的过程,这足以构建 64 位和 32 位二进制文件吗?
-
--disable-multilib明确禁用 32 位支持... -
好的,让我试试你的建议。
标签: linux gcc ubuntu-16.04