0

编译时出现此错误:

ld: warning: ignoring file /Users/matt/Programming/BitEagle_Projects/cbitcoin/build/obj/CBNetworkFunctions.o, file was built for unsupported file format ( 0x7f 0x45 0x4c 0x46 0x 2 0x 1 0x 1 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 ) which is not the architecture being linked (x86_64): /Users/matt/Programming/BitEagle_Projects/cbitcoin/build/obj/CBNetworkFunctions.o

并且对于使用以下命令编译目标文件时的所有其他目标文件:

gcc -c -O2 -Wall -Wno-overflow -pedantic -std=c99 -I/Path/To/Headers -m64 -o objFile.o srcFile.c

我尝试使用以下方法链接文件:

gcc -dynamiclib -Wl -flat_namespace -undefined dynamic_lookup -o libwhatever objFile1.o objFile2.o

那么是什么导致了这个问题呢?

gcc 版本为:i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1(基于 Apple Inc. build 5658)(LLVM build 2336.11.00)

谢谢你。

4

1 回答 1

2

第一条错误消息中的标头信息表明这CBNetworkFunctions.o是一个 ELF(可能是 Linux)目标文件,而不是 OS X Mach-O 目标文件。

如果此目标文件不是由您的构建过程创建的,您将需要将其删除并替换为由 Mac OS X 工具链构建的目标文件。

如果它是由您的构建过程创建的,那么会发生一些非常奇怪的事情,您需要向我们提供有关您正在做什么的更多细节。

于 2012-09-03T23:07:57.810 回答