分析原因,解决问题

在Xcode编译的时候,可能会遇到报这个错误"library not found for - ",这是为什么呢?

由于我们在项目中使用了一些第三方的库,如百度的静态库。当Xcode在编译的时候却找不到这个库,所以我们要让Xcode知道这个库文件在哪里,这样在编译的时候就可以轻松的找到库了。

出错信息

解决方法:
获取 库文件所在的文件路径 ,添加到Target的Build Settings界面,如图:

解决方法

若上述方法还未能解决,以下共有3种方法

  • 方法一:点击 XCode 工程文件,在 Build Phases 中查看 “ Link binary With Libraries” 如果不出所料,你应该能发现有一到数个的条目是用红色字体来显示的。 说明这些被工程引用的这些文件,其物理文件已经不处于之前所记录的地方了。 这种情况下,右键点击红色条目,选择 “Reveal in Project Navigator”, 此时大抵能在左侧栏中定位到缺失文件所在的路径,接下来就好办了,找到缺失的文件,挪回它应该待的地方。

  • 方法二: 在工程的 Target 中选中要执行编译的某个target, 然后 “get info”,打开 Build 设置页面,在 “ Library Search Path” 中添加缺失链接库的所在文件夹的路径。

  • 方法三:关闭Xcode,在控制台打开到工程目录,用pod install 命令重新安装,成功后再打开Xcode编译项目。

常见问题的处理方法

  • 总结1:library not found for -XXX 的问题有可能是你的某个库的连接引用有问题,解决的办法就是在项目的target里,选中Link Binary With Libraries 里的.a或framework 取消再加入,就可以了。

  • 总结2:warning:directory not found option 的问题可能是framework search paths 还有Library Search Paths 里面并没有这个路径,删除即可。

  • 总结3:duplicate就是重复的意思,那么看代码 要删除重复的openUDID,以及libwoa_two和sbjson冲突了,删除sbjson的点m即可.

Logo

大数据从业者之家,一起探索大数据的无限可能!

更多推荐