美文网首页
ld: library not found for -lXXX解

ld: library not found for -lXXX解

作者: 人不如狗629 | 来源:发表于2016-11-02 23:55 被阅读0次

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 文件的话,则上面的第二条命令乃不二之选~

相关文章

网友评论

      本文标题:ld: library not found for -lXXX解

      本文链接:https://www.haomeiwen.com/subject/pzvvuttx.html