gpt4 book ai didi

linux - 如何使用 --disable-multilib 构建 gcc 交叉编译器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:27 25 4
gpt4 key购买 nike

任何人都可以帮助如何构建支持 x86_64 架构的 multilib 的 gcc 交叉编译器?那就是从支持 m32 和 m64 库的源代码构建它。

有一篇很好的文章展示了如何构建 gcc 交叉编译器: http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/,但它仅演示了 --disable-multilib 的情况。

我正在尝试使用 --enable-multilib 选项(对于 m32 和 m64)而不是 --disable-mutlilib 来构建 x86_64 gcc 交叉编译器。

我遵循除了使用 arch=x86_64*-* 和 --enable-multilib我面临的问题是在第 4 步。标准 C 库头文件和启动文件

$ make install-bootstrap-headers=yes install-headers

出现以下错误:

/opt/cross/lib/gcc/x86_64-linux/4.9.2/../../../../x86_64-linux/bin/ld: cannot find crtbegin.o: No such file or directory
/opt/cross/lib/gcc/x86_64-linux/4.9.2/../../../../x86_64-linux/bin/ld: cannot find -lgcc
/opt/cross/lib/gcc/x86_64-linux/4.9.2/../../../../x86_64-linux/bin/ld: cannot find -lgcc_s
/opt/cross/lib/gcc/x86_64-linux/4.9.2/../../../../x86_64-linux/bin/ld: cannot find -lgcc
/opt/cross/lib/gcc/x86_64-linux/4.9.2/../../../../x86_64-linux/bin/ld: cannot find -lgcc_s
/opt/cross/lib/gcc/x86_64-linux/4.9.2/../../../../x86_64-linux/bin/ld: cannot find crtend.o: No such file or director

有什么想法吗?

我将 multilib 安装为:

james@james-Aspire-E5-472G:/usr$ find -name libgcc*.*
./lib32/libgcc_s.so.1
./lib/ure/lib/libgcc3_uno.so
./lib/x86_64-linux-gnu/libgccpp.so.1.0.3
./lib/x86_64-linux-gnu/libgccpp.so.1
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so
./lib/gcc/x86_64-linux-gnu/4.9/32/libgcc_s.so
./lib/gcc/x86_64-linux-gnu/4.9/32/libgcc_eh.a
./lib/gcc/x86_64-linux-gnu/4.9/32/libgcc.a
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_eh.a
./lib/gcc/x86_64-linux-gnu/4.9/x32/libgcc_s.so
./lib/gcc/x86_64-linux-gnu/4.9/x32/libgcc_eh.a
./lib/gcc/x86_64-linux-gnu/4.9/x32/libgcc.a
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_s_x32.so
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_s_32.so
./lib/gcc/x86_64-linux-gnu/4.9/libgcc.a
./libx32/libgcc_s.so.1
./share/doc/libgcc-4.9-dev

james@james-Aspire-E5-472G:/usr$ find -name crtbegin.o
./lib/gcc/x86_64-linux-gnu/4.9/crtbegin.o
./lib/gcc/x86_64-linux-gnu/4.9/32/crtbegin.o
./lib/gcc/x86_64-linux-gnu/4.9/x32/crtbegin.o

最佳答案

看看crossdev来自 Gentoo 项目,大大简化了交叉编译器的构建。
根据我的经验,最挑剔的部分通常是找到可以一起成功构建的 binutilsglibcgcc 版本。

正如 R M 所建议的,您不需要自己构建它,除非您愿意。

关于linux - 如何使用 --disable-multilib 构建 gcc 交叉编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33061644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com