第三方库冲突

duplicate symbol error

场景复述

工程中用到了 MarqueeLabel 第三方,如今集成导航功能时发现libbaiduNaviSDK.a也有用到MarqueeLabel这个第三方,只不过改为BNMarqueeLabel.git

文件不一样,忘记处理全局变量而形成符号冲突

如今第三方库中若是用到的其余第三方的文件基本都会重命名(避免相同文件名会形成符号冲突),通常不会出现出现符号连接错误,个别状况就是(文件虽然重命名可是里面的 全局变量并非static 类型)ui

eg:百度导航demo(SDKv3.1.0) 与 MarqueeLabel 出现 符号冲突spa

clipboard.png

把_kMarqueeLabelAnimationCompletionBlock前面的下划线去掉而后进行全局搜索:blog

clipboard.png

解决方法:ip

在 kMarqueeLabelAnimationCompletionBlock 添加static关键字rem

文件相同形成符号冲突

思路:找到冲突的*.O文件所在静态库,在库中删除便可.
参考连接:http://atnan.com/blog/2012/01...get

修改TARGETS->Build Setting->Other Linker Flags 添加: -force_load 静态库在工程中的路径(这种方法能够解决上面两种问题)it

clipboard.png

注意添加的时候先添加libbaiduNaviSDK.a的依赖库,否则会报错.io

参考连接:
http://atnan.com/blog/2012/01...
https://www.gitbook.com/book/...class

相关文章
相关标签/搜索