簡體   English   中英

如何在沒有“為不支持的文件格式構建文件”的情況下讓GCC正確編譯目標文件?

[英]How do I get GCC to compile object files correctly without “file was built for unsupported file format”?

編譯時出現此錯誤:

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)

謝謝。

第一條錯誤消息中的標頭信息表明CBNetworkFunctions.o是一個ELF(可能是Linux)目標文件,而不是OS X Mach-O目標文件。

如果構建過程未創建此目標文件,則需要將其刪除並將其替換為Mac OS X工具鏈構建的文件。

如果它是由您的構建過程創建的,那么一些非常奇怪的事情正在發生,您需要向我們提供有關您正在做的事情的更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM