linker command failed with exit code 1 (use -v to see invocation)

 

   转载请注明出处!!!

 

1、问题来源


这里写图片描述

第一种,是你导入某一个三方库;
第二种,是你在vim Podfile中删除或者屏蔽掉某一个三方库。

2、解决方案


1、对于引入第三方库

需要检查 
这里写图片描述

或者检查 
这里写图片描述这两处是否导入该库的路径。

2、对于删除三方库

就是因为你之前导入的时候,已经在某些地方留下了该库的路径,但是闲杂删除了之后,就找不到该库了。

需要做的需要检查上面解决方案1中的两个地方,以及下面一个地方: 
这里写图片描述删除掉跟你删除的库相关的,就可以解决问题了。

3、快速定位到错误点

可以在搜索栏,搜索到你使用这个库的所有地方,当然这个快速查找对于 “由于删除导致出现三方库这个问题”会方便很多,只需要把找到的每一个地方删除(路径部分)或者屏蔽(代码部分)。

这里写图片描述


3、因为导入文件重复


费时一天的时间,集成FastTextView这个编辑器,话说真的是要崩溃了,老大也让我自己早点下班,回家休息,今天的状态不适合码代码,但是我不甘心。 
因为,在小demo上集成都是没有问题的,我就想到底是哪出错了。 
先放这里写图片描述出错图:

本来,我觉得,就只有一行出错提示,我怎么找错误,后来看到上面的duplicate,重复文件,可是我并不知道在哪重复了,我找了所有的地方,真的是所有的地方。 
在快要放弃的时候,突然,想到在TARGES的other linkers 下的-all_load和-ObjC以及其他的库的”-XXX”,啊哈,我终于知道了,-all_load就包括了其他的所有,所以当然有那么多的文件重复啊,一天的出错时光没有白费。 
毕竟让我有这么痛的领悟。 
所以,我删掉了-all_load,就好了。 
下次自己可以涨一个心眼了。


4、前三个方案,不够用


项目中依赖的三方库实在是太多,再引入一个库的时候,又出现了这个问题,以为前三个解决方案已经是极致了,没想到,还是没能解决,这个时候,就需要试试这个了。 
把其中的$(inherited)删掉 
这里写图片描述

如果这个也不能解决你的问题,试试 
在 Library Search Paths 添加上 @(inherited) 。



以上是我目前能够解决这个问题的方案总结。

posted @ 2018-01-23 14:59  weicy  阅读(208)  评论(0编辑  收藏  举报