2012-12-11 56 views
3

我正在導入第三方項目,該項目有其自己的框架。我想學習的是API,當我試圖打開這個項目,我得到導入第三方項目時的鏈接器錯誤

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_T0Command", referenced from: 
     objc-class-ref in ViewController.o 
    "_OBJC_CLASS_$_T1Command", referenced from: 
     objc-class-ref in ViewController.o 
    "_OBJC_CLASS_$_iSmart", referenced from: 
     objc-class-ref in ViewController.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我已經花了近一個半小時的尋找解決方案。

Link Binaries with Libraries包含所需的框架,它缺少最初我已經已經添加

該項目已構建和清潔幾次。

EDIT 1 我已經運行使用在框架上的二進制終端的「文件」命令

file iSmartSDK 
iSmartSDK: Mach-O universal binary with 2 architectures 
iSmartSDK (for architecture armv7): Mach-O object arm 
iSmartSDK (for architecture armv6): Mach-O object arm 
+0

我有同樣的問題。 iSmart sdk提供商也應該爲i386構建自己的框架。我們必須告訴他們。 – karim

回答

2

它看起來像框架僅編譯爲ARM,而不是用於英特爾(I386) 。嘗試在iPhone上運行它,看看會發生什麼..

或者,您可以使用框架的二進制文件上的終端運行'file'命令來查看它支持的體系結構。第三方框架開源嗎?你應該下載源代碼,包括在您的項目和每一個你建立你的項目,所以你不會有這樣的問題時編譯..

+0

請檢查我的問題編輯 – onkar

+0

@onkar,因爲你可以看到它只有ARM二進制文件,如果不重新編譯該框架,你將無法在模擬器上運行它,這是你的全部問題。 –

+0

謝謝。我可以直接將應用程序部署到iPhone上嗎? – onkar

1

我覺得你ViewController.mbuild phases加入到target'scompiled source秒。

更新1:將「僅將Build Active Architectures」設置爲yes。

Target - >Build Settings

更新2:檢查你沒有寫#import "ViewController.m"。 !

+0

我已經將'Build Active Architectures'設置爲'yes',但仍然是同樣的問題 – onkar

+0

您可以請您使用您的源代碼嗎? –

相關問題