2011-03-23 36 views
8

我正在使用新的xcode4將upp應用程序從iOS 4.2修補到4.3。 除了將iOS設置爲4.3之外,沒有做任何更改,我創建了權利並且去!架構armv6的未定義符號,更新到iOS 4.3

消息我得到的是:

Undefined symbols for architecture armv6:"function", referenced from: 

伊夫試圖清理項目,重新安裝的Xcode。 我也卸載了xcode4演示版本。 我也嘗試設置爲優化armv7。

我會很高興的一些幫助,我卡住了。真。

非常感謝!

+0

函數從哪裏引用?在參考文件中看起來有趣嗎? – sarnold 2011-03-23 10:12:45

+0

嘗試在有效體系結構下的目標和項目構建設置下添加i386 – Hanuman 2011-03-23 10:17:39

+1

請包含錯誤的完整文本。 – 2011-03-23 10:19:30

回答

10

對於這種類型的錯誤,這是我通常會看到:

Undefined symbols for architecture armv6: 
    "_OBJC_CLASS_$_MyCustomController", referenced from: 
     objc-class-ref in SomeOtherController.o 
ld: symbol(s) not found for architecture armv6 

幾乎每一個我看到這個錯誤是由import語句隱藏/不可見的字符在SomeOtherController.hSomeOtherController.m造成的時間。所以,看你都h和.m文件,發現像這樣的行:

#import "MyCustomController.h" 

刪除此行並重新鍵入(不要複製/粘貼 - 你只repaste違規隱藏字符)。

+3

當我沒有在特定的構建目標中包含某些文件時,我也遇到了這個確切的問題。 – raidfive 2011-06-07 20:08:07

+3

@raidfive:謝謝!我遇到了同樣的問題,是因爲某些原因,Xcode在無限的智慧中決定不將幾個類的.m文件放到我的目標的Compile Sources部分。手動添加它們並編譯好。 – 2011-07-18 06:16:24

+0

@Answerbot感謝您的解決方案,但它不適合我。我得到這樣的錯誤未定義的符號架構armv6: 「_OBJC_CLASS _ $ _ CLLocationManager」,引用自: objc-class-ref in MyCLController.o ..需要解決它迫切..我也刪除heder文件#import < CoreLocation/CoreLocation.h> .. – Vivek2012 2012-04-10 05:51:23

8

在導航窗口中點擊您的項目名稱,選擇您正在構建的目標,進入構建階段,確保一個Xcode告訴你缺少的是在那裏。

0

我有這個問題,我剛剛解決了它。 這是一個簡單的函數名稱錯誤(忘了一個字母),在我的情況下導致了問題。

12

這裏就是我得到了這個問題:

我加了一個.h.m和NIB從另一個項目將其拖動到我的項目導航。 Xcode沒有正確地將它們添加到Build Phases中。

我對這個問題的解決方案:

enter image description here

  • 單擊在導航菜單
  • 點擊「構建階段」選項卡上的項目圖標
  • 轉到目標
  • .m文件添加到「編譯源代碼」(將其拖入或使用+按鈕)
  • 添加.xib或故事板文件,以「複製包資源」
  • 清潔和建立
1

我有同樣的問題在Xcode5爲iOS7與TestFlight SDK。我的問題是,'Build Active Architecture Only'被設置爲僅調試。

您可以在'YourProject' - >'Build Settings' - >'Architectures'下找到該設置將'Release'選項設置爲'Yes'。

這解決了我的問題 - 我希望它也能幫助你! :)

0

我在使用TestFlight SDK的iOS7 Xcode5中遇到了同樣的問題。我的問題是,'Build Active Architecture Only'被設置爲僅調試。

您可以在'YourProject' - >'Build Settings' - >'Architectures'下找到該設置將'Debug'選項設置爲'architecure arm7 arms7s'。

這解決了我的問題 - 我希望它也能幫助你! :)

0

我有一個類似的問題彈起全突然 - 更具體地說,我得到Undefined symbols for architecture armv6: "_OBJC_CLASS_$_CLLocationManager", referenced from: objc-class-ref in MyCLController.o

注意,我必須CoreLocation.framework在我的框架中列出(在Xcode」項目左側導航欄的框架下夾);並且以前的地理位置工作得很好。

我通過重新安裝CoreLocation.framework擺脫了這個問題。

如果你不知道怎麼做,在Xcode:
*點擊您的項目在Xcode左側導航欄
*轉到在您的項目設置常規選項卡
*向下導航 - 你會看到Linked Frameworks and Libraries
下安裝框架的名單*點擊+圖標添加CoreLocation.framework

0

以我爲例,我是在一個viewcontroller.m這樣

#import <MediaPlayer/MediaPlayer.h> 

沒有與MediaPlayer.framework鏈接二進制庫。在添加之後,它編譯得很好