我正在开发OS X 10.6.6,为嵌入式系统构建gcc交叉编译器和gnu java。 gcc native和cross需要是相同的版本,所以我想把所有东西都升级到最新的gcc版本。在构建gmp,mpfr,mpc和binutils之后没有问题,构建本机gcc失败了我认为是第一个链接步骤。失败的具体步骤是:
fixincludes$ gcc -g -O2 -o fixincl fixincl.o fixtests.o fixfixes.o server.o procopen.o fixlib.o fixopts.o ../libiberty/libiberty.a
ld: warning: in ../libiberty/libiberty.a, file was built for unsupported file format which is not the architecture being linked (x86_64)
此警告后面有很多未定义的符号错误。 libiberty.a和.o文件似乎是相同的架构:
fixincludes$ lipo -info ../libiberty/libiberty.a input file ../libiberty/libiberty.a is not a fat file
Non-fat file: ../libiberty/libiberty.a is architecture: x86_64
fixincludes$ lipo -info *.o
Non-fat file: fixfixes.o is architecture: x86_64
Non-fat file: fixincl.o is architecture: x86_64
Non-fat file: fixlib.o is architecture: x86_64
Non-fat file: fixopts.o is architecture: x86_64
Non-fat file: fixtests.o is architecture: x86_64
Non-fat file: procopen.o is architecture: x86_64
Non-fat file: server.o is architecture: x86_64
我怀疑这与32位和64位有关,但我不知道还有什么要检查,无法在任何地方找到具体的解决方案。谁能告诉我这里发生了什么,或者只是朝着正确的方向推动我?