library not found for - l~问题解决方案,转载+补充

来源:互联网 发布:mac 图片文件夹 编辑:程序博客网 时间:2024/05/29 21:30

在我们编译的时候有时候会报这个错误 "library not found for - "

由于是我们在项目中使用了一些第三方的库,就比如在使用百度的静态库文件的时候,报出的这个错误。

当xcode在编译的时候却找不到这个库,从而导致如此。所以我们要让xcode知道这个库文件在哪里,从而在编译的时候轻松的找到它。



 

解决办法:

获取 库文件所在的那个文件夹 路径,添加到 Target的Build Settings界面。

 

或许上述方法并未能解决,以下供有三种方法。

方法一点击 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 -lXXX 的问题有可能是你的某个库的连接引用有问题,解决的办法就是在项目的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即可.


补充:如果以上方式不奏效,可以试试先将库文件delete,注意选择remove reference ,然后在工程项目中找到库文件导入到delete的位置,这时候在library search paths里面就会自动add该库的path。最后,最好先强制退出一下xcode,然后run,应该就不会报错了!


1 0
原创粉丝点击