1. 程式人生 > >Xcode編譯Error ----Undefined symbols for architecture

Xcode編譯Error ----Undefined symbols for architecture

Xcode build的時候報錯

 Undefined symbols for architecture arm64:
 ...
 "_OBJC_CLASS_$_AFHTTPRequestOperationManager", referenced from:
_OBJC_CLASS_$_AppDelegate in AppDelegate.o
"_OBJC_CLASS_$_AFHTTPResponseSerializer", referenced from:
objc-class-ref in AppDelegate.o
...

在cocoapods管理第三方的時候經常遇見,很煩人,解決辦法有一下幾種:

1、檢查庫檔案是否匯入

檢查Compile Sources中是否有缺少.m檔案;
檢查link binary with libraries中是否缺少依賴庫,
但是在Xcode7上面好像很少出現這種問題,但是出問題也了不能不查。

2、確定系統依賴庫是否匯入

我們用到的大部分第三方庫都需要匯入響應的系統依賴庫,例如libz.dylib(或者libz.tbd),當缺少依賴庫時也會報錯,具體需要哪些系統依賴庫要看第三方文件。

3、檢查匯入庫路徑是否正確

檢查所匯入庫檔案路徑的下檔案是否存在,並檢查targets–>building setting下search paths下相應路徑是否正確。
這裡寫圖片描述

4、設定Other Linker Flags

很多第三方庫直接匯入xcode,編譯的時候都不能正確識別,需要在build settings 中設定 Other Linker Flags:

a、新增值$(inherited)
b、新增值-ObjC
c、新增值-force_load path/to/yourSdk

有時候工程中需要用到混編,如果Link With Standerd Libraries的值不小心設定成NO的話很可能許多函式找不到,報Undefined symbols for architecture arm64錯誤,將其值設定成YES就可以了。

6、DerivedData

設定完以上步驟,clean 一下工程 重新編譯,如果還出錯,關閉xcode,開啟finder ,使用快捷鍵command +shift +g 搜尋目錄~/Library/Developer/Xcode/DerivedData/ 找到你的app對應的資料夾,刪除這個資料夾,重新開啟xcode執行,應該就OK了。

相關推薦

Xcode編譯Error ----Undefined symbols for architecture

Xcode build的時候報錯 Undefined symbols for architecture arm64: ... "_OBJC_CLASS_$_AFHTTPRequestOperationManager", referenced from

caffe 編譯問題 Undefined symbols for architecture x86_64

編譯準備環境:homebrew安裝包環境:(mac)環境下 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安裝完成之後,各種ca

iOS開發常遇錯誤之Xcode編譯Undefined symbols for architecture xxx 錯誤總結

每次遇到這種錯誤就頭痛,不知道要害死多少腦細胞了,就在這裡做個總結吧 可能會遇到這幾種錯誤: Undefined symbols for architecture armv7 Undefined symbols for architecture armv7s Unde

Xcode 編譯 Undefined symbols for architecture x86_64:

可能會遇到這幾種錯誤: Undefined symbols for architecture armv7 Undefined symbols for architecture armv7s Undefined symbols for architecture arm64

新增第三方類庫造成的Undefined symbols for architecture i386 編譯錯誤

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!                1.原因:如果是原始碼編譯的話,一般就只某些標頭檔案沒有新增到src編譯裡面。但是對於新增庫編譯,一般是庫的編譯路徑設定不正確(比如arm的版本、模擬器或者真機

Xcode升級到5.1& iOS升級到iOS7.1問題:Undefined symbols for architecture x86_64

Xcode升級到5.1 新特性之一就是預設讓所有App都通過64位編譯器編譯。原來在Xcode5.0.x的時候預設的Standard architectures只有(arm7,armv7s),到5.1之後預設就帶上ar

編譯報錯:Undefined symbols for architecture arm64: "_OBJC_CLASS_$_類名", referenced from

報錯: Undefined symbols for architecture arm64: “_OBJC_CLASS_$_類名”, referenced from : Objc-class-ref

升級Xcode到6.1之後使用iPhone6真機測試cocos2d-x報錯不支援arm64的解決方案,Undefined symbols for architecture arm64 錯誤

轉載請註明出處http://blog.csdn.net/wjlpld/article/details/40400041  謝謝大家 最近收入iPhone6之後將Xcode順便升級到6.1版本,編譯cocos2d-x 3.2的Helloworld專案時報錯如下 Und

iOS Undefined symbols for architecture arm64

Undefined symbols for architecture arm64:  "_OBJC_CLASS_$_YYCache", referenced from:      objc-class-ref in LFNetworking.o&nb

IOS報錯解決(一) ------ Undefined symbols for architecture armv7錯誤

  Undefined symbols for architecture armv7:   "_OBJC_CLASS_$_BriefMainModel", referenced from:       objc-class-r

iOS Undefined symbols for architecture i386:

出現如下錯誤: Undefined symbols for architecture i386:   "_OBJC_CLASS_$_PlayerControlsBar", referenced from:     &nbs

Undefined symbols for architecture arm64

使用CocoaPod引入 AFNetworking ,出現錯誤 1.Undefined symbols for architecture arm64 search:https://stackoverflow.com/questions/19213782/undefined-symbols

Undefined symbols for architecture arm64: "_OBJC_CLASS_$_CNContactPickerViewController", reference

Undefined symbols for architecture arm64:   "_OBJC_CLASS_$_CNContactPickerViewController", referenced from:       objc-class-ref in 

ios Undefined symbols for architecture x86_64: "XXX", "_OBJC_CLASS_$_", referenced fr

iOS出現錯誤。 Undefined symbols for architecture x86_64:   "_IJKMPMediaPlaybackIsPreparedToPlayDidChangeNotification", referenced from:  

執行iPhone6模擬器時連結出錯:"libstdc++.6.0.9.dylib:Undefined symbols for architecture i386"

1、問題描述 Xcode6執行iPhone6(or Plus)模擬器,工程中引入的第三方庫zxing、高德sdk編譯不過,原因是這些庫中引用的libstdc++.6.0.9.dylib中的C++函式不支援模擬器。 2、解決方法 更改Xcode6中C++的編譯選項,將C

Undefined symbols for architecture arm64:

今天準備寫推送,就把以前寫過的程式碼拖過來用,但是編譯報錯了,我特別鬱悶,怎麼會報錯,在原來專案上執行的好好,所以我就根據報錯去網上查原因,(我也引入jpush的jpush-ios-2.1.0.a也報了類似的錯誤,上面的截圖是我先把.a檔案刪了,想一個一個找原因的截圖)

iOS經典錯誤Undefined symbols for architecture XXX

首先宣告 因為我是在真機上編譯的專案,所以報錯的架構(CPU指令集)為arm64。 如果我們使用64位模擬器(iPhone simulators 5s 或更高版本)編譯或者執行專案,就會報以下錯誤: Undefined symbols for arch

Undefined symbols for architecture x86_64:的一種解決辦法

Undefined symbols for architecture x86_64:   "_iconv_open", referenced from:       _main in main

我的bug之 Undefined symbols for architecture arm64:

Undefined symbols for architecture arm64:   "_OBJC_CLASS_$_WeiboApi", referenced from: 解決方法: 這是使用騰訊微博的時候報錯的: 在你的專案中的appDelegate中 [Sh

Undefined symbols for architecture arm64 "_OBJC_CLASS_$_FBSession", referenced from

今天用xcode動態分析專案的時候發現程式突然跑不起來了(run 的時候是沒問題的),5個錯誤,都是關於百度地圖的問題。 Undefined symbols for architecture arm64  "_OBJC_CLASS_$_FBSession", referen