博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三方库冲突
阅读量:6007 次
发布时间:2019-06-20

本文共 579 字,大约阅读时间需要 1 分钟。

duplicate symbol error

场景复述

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

文件不同,忘记处理全局变量而造成符号冲突

现在第三方库中如果用到的其他第三方的文件基本都会重命名(避免相同文件名会造成符号冲突),一般不会出现出现符号链接错误,个别情况就是(文件虽然重命名但是里面的 全局变量并不是static 类型)

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

clipboard.png

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

clipboard.png

解决方法:

在 kMarqueeLabelAnimationCompletionBlock 添加static关键字

文件相同造成符号冲突

思路:找到冲突的*.O文件所在静态库,在库中删除即可.

参考链接:

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

clipboard.png

注意添加的时候先添加libbaiduNaviSDK.a的依赖库,不然会报错.

参考链接:

转载地址:http://rspmx.baihongyu.com/

你可能感兴趣的文章
【原创】ObjectARX中的代理对象
查看>>
.net中验证码的几种常用方法
查看>>
解决OracleDBConsoleorcl不能启动
查看>>
.net DLL程序集中打包另一个DLL
查看>>
我的友情链接
查看>>
Drupal第三方模块汇集(一)
查看>>
我的友情链接
查看>>
使用spring的自身的listener进行web的配置
查看>>
linux学习之“VI”与“VIM”
查看>>
linux下无线网卡驱动安装
查看>>
oracle recyclebin与flashback drop
查看>>
我的友情链接
查看>>
svmlight使用说明
查看>>
LVM
查看>>
学习之shell脚本
查看>>
Andorid Launcher程序代码分析
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
性能及监控
查看>>