1.ld: library not found for -lPods
最近花时间把公司的项目重构了一下,很多第三方库由于版本太老,于是引入了CocoaPods来管理。
第一步pod install后,出现
[!] 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 出现 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中选中要执行编译的某个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” ,如果有某些库是红色字体标注的,表明被工程引用的这些文件,其物理文件已经不处于之前所记录的地方了。右键点击红色标注的库,选择 “Reveal in Project Navigator”,可以在左侧栏中定位到缺失文件所在的路径,然后找到缺失的文件,挪回原处。
附上git与svn管理的小区别(实际上是生成目录的位置不同):
递归删除指定目录下的 .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 文件的话,则上面的第二条命令乃不二之选~