2012-02-25 85 views
0

我在arm環境下在ubuntu環境中導入了由g ++編譯的庫文件(.a)。 我也試過編譯器llvm。我創建了一個客觀的C++項目,並希望使用這個庫。 我使用了「編譯爲目標C++」的xcode編譯選項「 」我收到下面的鏈接錯誤。任何建議都是值得歡迎的。 ======「架構i386的未定義符號」錯誤鏈接.a庫用於目標C++

爲i386硬件架構未定義符號: 「xxxClass :: yyyFunc(INT,字符*,字符*,整數&,浮子*)」,從引用:aaa.o

LD:符號(多個)未找到i386硬件架構 鐺:錯誤:連接器命令失敗,退出代碼1(使用-v看調用)

LD:符號(多個)未找到i386硬件架構 鐺:錯誤:鏈接器命令失敗並退出代碼1(使用-v查看調用)

+0

連接步驟如何完成?連接器的參數順序非常重要! – 2012-02-25 16:14:44

回答

1

您想要在Xcode上鍊接一個在Linux上爲ARM編譯的庫嗎?聽起來很危險;我不確定他們甚至使用相同的.o格式。在任何情況下,你得到的錯誤都是因爲你正在鏈接x86(無論是主機還是iPhone模擬器),而不是ARM。

+0

smparkes,庫(.a文件)是在linux(ubuntu,intel 686)中編譯的,選項爲-march i386,xcode和ios模擬器在蘋果機器(i386)上運行,鏈接xcode庫時發生錯誤項目。我使用g ++選項「arm」編譯庫時遇到同樣的錯誤。 – task007 2012-02-26 01:38:29

+0

是的,要麼這是永遠不會工作,或我真的錯過了什麼。 Linux上的對象格式是ELF。在OS X上,它是Mach-O。 – smparkes 2012-02-26 02:02:24

+0

如果你從Linux開始,它可能是開源的。只需在Mac OS X上編譯它即可。這是解決對象格式差異的最佳方法。 – alternative 2012-02-26 13:11:36

相關問題