Xcode出现( linker command failed with exit code 1)错误总结
2,錯(cuò)誤信息中出現(xiàn)了某個(gè)類的名字,去原文件中看看#import了哪些第三方庫,把這些庫挨個(gè)注釋排除,找到出錯(cuò)的那個(gè)庫,然后按照官方提供的步驟重新添加一遍。
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ò)誤。
錯(cuò)誤中出現(xiàn)了“MyPageLogViewController”這個(gè)類,你可以找到這個(gè)類的.m文件, 查看他的Target Membeship, 如下圖
?
如果沒有勾選上,點(diǎn)擊勾選。然后編譯查看。
?
如果是新添加的第三方庫,且不是靜態(tài)庫
先重復(fù)第一步過程,然后找到?Build settings->Linking->Other Linker Flags
將此屬性修改成-all_load??或者 -ObjC ,這個(gè)視情況而定。總之可以多試幾次。
如果添加的是第三方靜態(tài)庫(.a文件)?
在用到這個(gè)庫的所有文件中都出現(xiàn)了錯(cuò)誤, 如上?BaiduMobStatAppDelegate 類和?MyPageLogViewController類
?
這種情況就可能是這個(gè)靜態(tài)庫路徑混亂導(dǎo)致的鏈接錯(cuò)誤
解決方法:Build settings->Search Path->Library Search Paths??添加靜態(tài)庫的相應(yīng)路徑。
庫路徑錯(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,搞定。
1、Framework Search Paths
附加到項(xiàng)目中的framework(.framework bundles)的搜索路徑
2、Library Search Paths
附加到項(xiàng)目中的第三方Library(.a files)的搜索路徑,Xcode會(huì)自動(dòng)設(shè)置拖拽到Xcode中的.a文件的路徑. 情況1 在工作左邊導(dǎo)航欄Target-->Build Phases-->compile Sources中,第三庫庫的所有.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)庫.a 出現(xiàn)了問題. 在模擬器和真機(jī)引入的靜態(tài)庫是分開的!!!當(dāng)然如果你的靜態(tài)庫做成了統(tǒng)一的,那就不會(huì)出現(xiàn)情況5.?轉(zhuǎn)載于:https://www.cnblogs.com/jztsdwn/p/10606619.html
總結(jié)
以上是生活随笔為你收集整理的Xcode出现( linker command failed with exit code 1)错误总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息队列如何保证顺序性?
- 下一篇: 长大约跑编程任务