尝试为ARM交叉编译Erlang R13B04时失败

尝试为ARM交叉编译Erlang R13B04时失败,erlang,arm,cross-compiling,Erlang,Arm,Cross Compiling,我试图交叉编译Erlang并遇到一个奇怪的bug。使用的命令是 make clean ./otp_build configure --host=arm-none-linux-gnueabi --build=i686-pc-linux-gnu --prefix=/opt/erlang erl_xcomp_sysroot=~/sbctools/arm-2007q3 --disable-hipe --disable-threads --disable-smp --disable-megaco-f

我试图交叉编译Erlang并遇到一个奇怪的bug。使用的命令是

make clean

./otp_build configure --host=arm-none-linux-gnueabi --build=i686-pc-linux-gnu 
--prefix=/opt/erlang erl_xcomp_sysroot=~/sbctools/arm-2007q3 --disable-hipe 
--disable-threads --disable-smp --disable-megaco-flex-scanner-lineno 
--disable-megaco-reentrant-flex-scanner --disable-dynamic-ssl-lib 
--without-termcap --without-javac --without-ssl

./otp_build boot
它们的输出可以在上看到(它太大了,无法粘贴在这里),但结束该过程的错误是

/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/sbctools/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: /home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a(adler32.o): Relocations in generic ELF (EM: 3)
/home/aromanov/otp_src/erts/emulator/zlib/obj/arm-none-linux-gnueabi/opt/libz.a: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[3]: *** [/home/aromanov/otp_src/bin/arm-none-linux-gnueabi/beam] Error 1
make[3]: Leaving directory `/home/aromanov/otp_src/erts/emulator'
make[2]: *** [opt] Error 2
make[2]: Leaving directory `/home/aromanov/otp_src/erts/emulator'
make[1]: *** [opt] Error 2
make[1]: Leaving directory `/home/aromanov/otp_src/erts'
make: *** [emulator] Error 2
事实上,查看
~/otp_src/erts/emulator/zlib/obj/arm none-linux-gnueabi/opt/libz.a
显示它是为英特尔30386编译的。但是为什么呢?我怎样才能避免呢

编辑:
~/sbctools/arm-2007q3/bin
路径中的第一个目录。我可能还需要添加其他工具链目录吗?

make[4]: Entering directory 
/home/aromanov/otp_src/erts/emulator/zlib'
make -f arm-none-linux-gnueabi/Makefile TYPE=opt
make[5]: Entering directory
/home/aromanov/otp_src/erts/emulator/zlib' make[5]: Nothing to be done for
all'.
make[5]: Leaving directory
/home/aromanov/otp_src/erts/emulator/zlib' make[4]: Leaving directory `/home/aromanov/otp_src/erts/emulator/zlib' 看起来你以前已经做过zlib部件了。。。当它没有正确配置时。
尝试
makeclean
makedistclean
然后重新编译。

是的,问题是
makeclean
由于某种原因没有清理这些文件!在手动删除它们之后,它们得到了正确的重建。