iOS开发nbsp;引用第三方库出现duplicat…
在iOS开发中, 难免会集成别人的三方类库, 当集成的三方类库过多时, 难免会出现某些库同时使用了同样的函数库, 导致link的时候报错提示 duplicate symbol。详情见图:
这样的报错让我们觉得很麻烦, 这样的文件重复错误, 不是由自己的程序中的代码造成的, 而是别人的三方类库, 也就是说, 这种情况下, 我们没有办法通过修改自己的代码而使问题得到解决。 我们就只能要求第三方(函数库的提供方)提供源码, 然后自己修改, 或者是让三方代码提供者自己修改了之后给我们, 不管怎样, 多少会觉得有点无理要求了。
修改这样的错误, 我们需要用到lipo 和 ar 工具。
那么我们现在就来修改一下吧。
一、找到重复的库文件(两个库文件重复找其中之一即可, 三个库文件, 找到重复文件的其中两个, .....以此类推), 你可以直接在该项目下的文件夹进行操作(不建议, 容易使程序出问题),你也复制这些库文件到其它文件夹进行操作。 我们这里复制到其它文件夹下进行操作。需要复制的文件见图:
二、打开终端, 并cd 到文件夹下, 使用
三、我们可以看最后一行信息, 此处
四、文件已经分离出来, 下面我们使用ar 工具, 查看各文件下的二进制文件(.o文件)。
根据我们最开始的错误定位,从上面我们都能轻易找到重复的文件
五、使用命令 ar -d -sv ASIAIDCardReader.armv7s AsyncSocket.o, 即删除 ASIAIDCardReader.armv7s 下的
六、文件修改好了, 接下来我们需要把修改好的文件, 全部再组合成我们原来的framework下的fat文件。使用命令
七、将修改好的文件, 拖拽到原文件夹下, 替换原文件即可。
注:其它由重复的framework, 按照以上方法重复一遍即可。
好了, 按照这样的方法, 我解决了自己的问题, 有什么不对的地方, 还希望大家多多指点, 最后, 此教程借助博客:http://angelolloqui.com/blog/31-How-to-fix-a-Duplicated-Symbols-error-on-binary-files
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
