我在Map SDK和Maply(WhirlyGlobeMaplyComponent)中使用MapBox在我的应用程序上显示地球仪。个别情况下,它们工作正常,但似乎不能很好地协同工作。
问题在于,这两个库下面都使用相同的类(无前缀),并导致链接器问题,指示我的应用程序中有重复的符号。链接器错误的示例如下(我收到多个此类错误)
duplicate symbol _pj_s_eqdc in:
/Users/SagarAdmin/Desktop/Motr-iOS/Motr/WhirlyGlobeMaplyComponent.framework/WhirlyGlobeMaplyComponent(PJ_eqdc.o)
/Users/SagarAdmin/Desktop/Motr-iOS/Motr/MapBox.framework/MapBox(PJ_eqdc.o)
虽然Maply为我提供了Mapbox的iOS SDK库的.a文件,但是我没有可以使用的.a文件。我尝试提取这些并将它们组合到一个单个库中,如How to handle duplicate symbol error from 3rd party libraries?所示
但是我不确定这是否是这两个库的正确解决方案。关于我如何在项目中成功使用这两个框架的任何解决方法?
最佳答案
如果库确实相同,则只需链接一次库。在这种情况下,只需选择两者之一,然后从目标项目设置中的“链接的框架和库”列表中删除另一个。那应该解决“重复符号”的问题。
但是,如果这是两个不同的库(但使用相同的类名),则无法通过合并/合并这些库来解决此问题。您只能通过更改原始代码来解决它,以使所有类名和常量等唯一。
关于ios - 尝试使用2个第三方库时出现重复符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20298930/