linker command failed被这个
library not found for -xxx
错折腾了下,特此记录下解决过程。
一般来说这个错就是 我的xxx库的连接引用有问题,常见解决办法:
-
方法一:在Build Phases 中的 Link Binary With Libraries 中对其xxx取消并且重新引用,同时在Build Setting 中的 Build Active Architecture Only
改成 YES,最后Clear 下。 -
方法二:直接在Build Settings 中的 Library Search Paths 中手动添加其路径。
-
方法三:用了CocoaPods 之后,直接 pod update,或pod install。因为这个问题换个角度来说就是 libPods.a是红色 缺失的,所以只需要在终端 pod update就可以了。
然而这两种都没有解决我的问题,像第一种方法压根在 Link Binary With Libraries 找不到该库,第二种方法我也是尝试的,但是不对,这个库是在CocoaPods 中的,所以尝试第三种方法,虽说成功了,然而我却不敢用,因为马上上线了,直接 update 更新的地方有点多,又是Xcode 8 的环境下,不敢立即用。
在网上找了一圈,居然发现有朋友和我有同样的经历 灰烬里有颗心的 ld: library not found for -lXXXXX 的解决方法, 连过程都是一样,然而并不符合这边,继续追寻答案......
-
方法四:涉及到CocoaPods ,在其官网上提示,在 Edit Scheme 中的build 里加上 Pods, 然后再编译。
另一方法
然而我这边还是编译失败的....... -
方法五:用最直接的办法啦,直接将缺失的文件干掉再补上去,和方法一有点像,但是这个位置有点不同。
去掉lib
然后直接Copy 在改目录下
注意的是:只要放在该目录下,并不要拖到Frameworks 中,否则又会出错。暂时来说,我用了这种方法。
总的来说,像我这种在 CocoaPods 中的错误情况,直接用 ** 方法三 pod update ** 就好了,但是我们情况有点特殊,只好用方法五啦,暂时没发现其他方法,如有好的方法欢迎告之。
PS: 另外还有一种直接的方法,在SVN 头上上传该文件,因为我这边该问题的产生就是由于SVN 少传了这个文件!
网友评论