【发布时间】:2015-10-11 04:50:28
【问题描述】:
任何人都可以帮助如何构建支持 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
【问题讨论】:
标签: linux gcc embedded-linux