1.ld: library not found for -lPods
最近花時間把公司的項目重構(gòu)了一下瞬浓,很多第三方庫由于版本太老,于是引入了CocoaPods來管理蓬坡。
第一步pod install后猿棉,出現(xiàn)
[!] The XXX target overrides the 'OTHER_LDFLAGS' build setting defined in
'Pods/Target Support Files/Pods/Pods.debug.xcconfig'.
This can lead to problems with the CocoaPods installation
- Use the '$(inherited)' flag, or
- Remove the build settings from the target.
[!] The 'XXXXX [Release]' target overrides the 'OTHER_LDFLAGS' build setting defined in
'Pods/Target Support Files/Pods/Pods.release.xcconfig'.
This can lead to problems with the CocoaPods installation
- Use the '$(inherited)' flag, or
- Remove the build settings from the target.
警告,提示設置不對屑咳,嘗試編譯workspace 出現(xiàn) ld:
library not found for -lPods錯誤萨赁,原因就是工程里面的設置項覆蓋了pods中xcconfig中的設置。解決辦法就是在Build Settings->other linker flag中兆龙,加上 $(inherited) 即可杖爽。
或者是cocoa pods需要更新,重新安裝一下即可详瑞。
另外設置Project->Pods下所有第三方庫的Build Active Architecture Only為NO
個人建議debug模式下設置Build Active Architecture Only為YES
2.ld: library not found for -l...
這是由于工程在編譯時找不到需要的鏈接庫而導致的
解決辦法:在工程的Target中選中要執(zhí)行編譯的某個target,然后“get info”,打開Build設置頁面掂林,在“Library Search Paths”中添加缺失鏈接庫的所在文件夾的路徑即可。
例:ld:
library not found for -lAFNetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation).
錯誤原因是cocoa pods引入了AFNetworking庫坝橡,但卻找不到相應的路徑泻帮。解決辦法就是在Target的Build Settings->Library Search Paths中锣杂,加上$(inherited)即可番宁。
3.ld: library not found for -lcurl
Build Phases->Link Binary With Libraries選中對應的.a或framework,再刪除再重新加入
點擊 XCode 工程文件踱蠢,在Build Phases中查看 “Link binary With Libraries” 棋电,如果有某些庫是紅色字體標注的茎截,表明被工程引用的這些文件赶盔,其物理文件已經(jīng)不處于之前所記錄的地方了。右鍵點擊紅色標注的庫撕攒,選擇 “Reveal in Project Navigator”,可以在左側(cè)欄中定位到缺失文件所在的路徑抖坪,然后找到缺失的文件,挪回原處猿推。
附上git與svn管理的小區(qū)別(實際上是生成目錄的位置不同):
遞歸刪除指定目錄下的 .git捌肴、.svn 文件
1.find . -name .git | xargs rm -fr
2.find . -name .svn | xargs rm -rf
1. 用git做版本管理的時候状知,只在根目錄下生成一個 .git 目錄孽查,刪掉這一個就行了~
因此,刪除 .git 只需要使用 rm -rf .git 命令就夠了西设。
2. 用svn做版本管理的時候答朋,受管理的每個目錄下面都會有一個 .svn 隱藏目錄。
因此禽绪,如果要去掉 svn 文件的話洪规,則上面的第二條命令乃不二之選~