1,看看是不是有新添加的文件跟之前文件同名
2磺送,錯(cuò)誤信息中出現(xiàn)了某個(gè)類的名字驻子,去原文件中看看#import了哪些第三方庫(kù),把這些庫(kù)挨個(gè)注釋排除估灿,找到出錯(cuò)的那個(gè)庫(kù)崇呵,然后按照官方提供的步驟重新添加一遍。
3.SVN或git忽略了某些文件馅袁,如.o 等文件沒能update下來域慷,查看.o文件可能是紅色的,可以重新添加或者修改SVN(git)的忽略設(shè)置
4.把.a文件刪除再重新拖到項(xiàng)目中解決問題
5.可能重復(fù)添加了文件(也可能沒勾選 Copy items if neded 這個(gè)選項(xiàng))汗销,建議刪除后重新添加
6.工程中文件名重復(fù)了 也會(huì)出現(xiàn)同樣的錯(cuò)誤
7.”Build Settings”->”Enable Bitcode”設(shè)置為NO 犹褒,因?yàn)橛行㏒DK不支持Bitcode
8.可能在引用的時(shí)候 可能寫的是#import "XXXXX.m" ,如果是改為#import "XXXXX.h"?
9.可能你導(dǎo)入的SDK只能在真機(jī)下才能運(yùn)行弛针,模擬器會(huì)報(bào)錯(cuò)叠骑!
如果是多人開發(fā),你同步完成后發(fā)現(xiàn)出現(xiàn)如下的錯(cuò)誤削茁。
Undefined?symbols?for?architecture?armv7:??
??"_OBJC_CLASS_$_MyPageLogViewController",?referenced?from:??
??????objc-class-ref?in?BaiduMobStatAppDelegate.o??
ld:?symbol(s)?not?found?for?architecture?armv7??
clang:?error:?linker?command?failed?with?exit?code?1?(use?-v?to?see?invocation)??
錯(cuò)誤中出現(xiàn)了“MyPageLogViewController”這個(gè)類座云,你可以找到這個(gè)類的.m文件疙赠, 查看他的Target Membeship;
need-to-insert-img
如果沒有勾選上,點(diǎn)擊勾選朦拖。然后編譯查看圃阳。
如果是新添加的第三方庫(kù),且不是靜態(tài)庫(kù)
先重復(fù)第一步過程璧帝,然后找到?Build settings->Linking->Other Linker Flags
need-to-insert-img
將此屬性修改成-all_load??或者 -ObjC 捍岳,這個(gè)視情況而定〔橇ィ總之可以多試幾次锣夹。
Undefined?symbols?for?architecture?armv7:??
??"_OBJC_CLASS_$_BaiduMobStat",?referenced?from:??
??????objc-class-ref?in?BaiduMobStatAppDelegate.o??
??????objc-class-ref?in?MyPageLogViewController.o??
?????(maybe?you?meant:?_OBJC_CLASS_$_BaiduMobStatAppDelegate)??
ld:?symbol(s)?not?found?for?architecture?armv7??
clang:?error:?linker?command?failed?with?exit?code?1?(use?-v?to?see?invocation)??
在用到這個(gè)庫(kù)的所有文件中都出現(xiàn)了錯(cuò)誤, 如上?BaiduMobStatAppDelegate 類和?MyPageLogViewController類
這種情況就可能是這個(gè)靜態(tài)庫(kù)路徑混亂導(dǎo)致的鏈接錯(cuò)誤
解決方法:Build settings->Search Path->Library Search Paths??添加靜態(tài)庫(kù)的相應(yīng)路徑苏潜。
need-to-insert-img
庫(kù)路徑錯(cuò)誤的情況:
錯(cuò)誤如下银萍,這表示是查詢Library的時(shí)候出現(xiàn)的異常。
"directory not found for option '-L/..."
解決方法:
依次 Project -> targets -> Build Setting -> Library Search Paths
刪除里面的路徑
錯(cuò)誤如下恤左, 這表示是查詢Framework的時(shí)候出現(xiàn)的異常贴唇。
"directory not found for option '-F/..."
解決方法:
依次 Project -> targets -> Build Setting -> Framework Search Paths
刪除里面的路徑
OK,搞定飞袋。
附加到項(xiàng)目中的framework(.framework bundles)的搜索路徑
附加到項(xiàng)目中的第三方Library(.a files)的搜索路徑巧鸭,Xcode會(huì)自動(dòng)設(shè)置拖拽到Xcode中的.a文件的路徑.
情況1
在工作左邊導(dǎo)航欄Target-->Build Phases-->compile Sources中瓶您,第三庫(kù)庫(kù)的所有.m文件都添加到里面,然后編譯通過了纲仍;
情況2呀袱、
linker command failed with exit code 1 (use -v to see invocation)
出現(xiàn)這種情況很可能是,項(xiàng)目中引入了多個(gè)相同的文件郑叠。刪除一個(gè)就ok压鉴!
情況3、
xcoder的一個(gè)編譯錯(cuò)誤:
linker command failed with exit code 1 (use -v to see invocation)
說明有無法準(zhǔn)確找到的函數(shù)锻拘,函數(shù)有重復(fù)現(xiàn)象油吭。
造成這個(gè)錯(cuò)誤的原因是我直接在 .h頭文件中實(shí)現(xiàn)了幾個(gè)函數(shù),然后這個(gè)頭文件又被別的.c文件所引用署拟,有實(shí)現(xiàn)的婉宰。
所以解決辦法是把實(shí)現(xiàn)的幾個(gè)函數(shù)單出一個(gè).c文件里去。這樣就ok了推穷。
情況4心包、
把 Valid Architectures??的值改為 armv7
過程:
PROJECT --> Build Settings --> Architectures --> Valid Architectures??他的值本來是 armv7 armv7s??(ios6.0下)??把a(bǔ)rmv7s 去掉即可
同樣的操作
TARGETS -->??Build Settings --> Architectures --> Valid Architectures??做同樣的修改
情況5、 很奇葩的情況啊馒铃,就是引用第三方的靜態(tài)庫(kù).a 出現(xiàn)了問題. 在模擬器和真機(jī)引入的靜態(tài)庫(kù)是分開的P诽凇:弁铩!當(dāng)然如果你的靜態(tài)庫(kù)做成了統(tǒng)一的娃殖,那就不會(huì)出現(xiàn)情況5.
參考文章:?http://blog.csdn.net/yuanpeng1014/article/details/73480321