解决Three20与其他framework冲突的办法
来源:互联网 发布:免费配音制作软件 编辑:程序博客网 时间:2024/05/16 04:41
原文链接地址:http://blog.csdn.net/sing_sing/article/details/7553523
项目中用到Three20框架,同时也使用了讯飞语音的framework,编译时出现类似如下冲突提示信息:
ld: duplicate symbol _OBJC_CLASS_$_AdLinks in /Users/w/Documents/project 2/dianxing_v2.00_code_reconfiguration/iFlyLib/iFlyTTS.framework/iFlyTTS(AdvertiseDataDefine.o) and /Users/w/Documents/project 2/dianxing_v2.00_code_reconfiguration/iFlyLib/iFlyISR.framework/iFlyISR(AdvertiseDataDefine.o) for architecture i386
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1
网上收集了一下对于该问题的解答,感觉还比较靠谱,粘贴如下:
个人猜想,大概是在iFlyTTS和iFlyISR在编译的时候,都加入了AdvertiseDataDefine.m(AdvertiseDataDefine.o)这个文件,而里面包含了AdLinks这个类的category。在一般的链接参数下倒是没有问题(因为category的链接被忽略了),但是如果引入了Three20,于是就加入了-ObjC - all_load这个参数(没办法,这个参数对于Three20的运行时必须的),于是这个链接错误就表现出来了(于是链接时就出现了duplicate symbol _OBJC_CLASS_$_AdLinks in iFlyTTS(AdvertiseDataDefine.o) and iFlyISR(AdvertiseDataDefine.o) for architecture XXXX)。
解决方案:修改链接参数(Other Linker Flag)
1.去掉-ObjC -all_load参数(这个参数会强制所有的静态链接库都加载其中的category);
2.改为逐一加载Three20的各个静态库,即修改链接参数(Other Linker Flag)为如下形式:
-force_load $(BUILT_PRODUCTS_DIR)/libThree20.a
-force_load $(BUILT_PRODUCTS_DIR)/libThree20UINavigator.a
-force_load $(BUILT_PRODUCTS_DIR)/libThree20UICommon.a
-force_load $(BUILT_PRODUCTS_DIR)/libThree20UI.a
-force_load $(BUILT_PRODUCTS_DIR)/libThree20Style.a
-force_load $(BUILT_PRODUCTS_DIR)/libThree20Network.a
-force_load $(BUILT_PRODUCTS_DIR)/libThree20Core.a
ps:写这篇文章主要目的是为了说明,在碰到Three20和其他framework冲突的时候,可以考虑一下逐个加载Three20的lib,而不是使用-ObjC - all_load参数一次性强制加入。
- 解决Three20与其他framework冲突的办法
- 解决Three20与其他framework冲突的办法
- 解决jquery与其他库的冲突
- 解决jquery与其他库的冲突
- 解决jQuery与其他库冲突的方法
- Android ScrollView与其他组件的OnTouchEvent冲突解决
- 解决viewpager与其他可以左右滑动的事件冲突
- jQuery 随笔 之 与其他JS库冲突的解决
- jQuery与其他JS框架冲突解决
- 解决jQuery库与其他库冲突
- jquery与其他js冲突问题 解决
- jQuery与其他库冲突的解决方法
- jQuery与其他库冲突的解决方法
- jquery与其他包冲突的解决办法
- VS2008解决“MSVCRT”与其他库的使用冲突的警告
- VS2008解决“MSVCRT”与其他库的使用冲突的警告
- JQuery的学习:解决jQuery与其他库冲突的方法
- VS2008解决“MSVCRT”与其他库的使用冲突的警告
- VS 快捷键
- Cloud Found使用dev_setup进行单节点部署之排错分析
- Android 自定义字体
- Linux 的多线程编程的高效开发经验
- 动态规划求编辑距离
- 解决Three20与其他framework冲突的办法
- 先思考,再发问
- UNIX系统编程2《笔记》
- 2011 福州赛区现场赛C - Bob’s Race
- repeater控件分成两列显示
- java设计模式_命令模式
- 陕西谷县数百万斤红枣滞销贱卖喂牛-红枣滞销-农产品销路-贱卖
- PHP的多进程
- django 与mysql的连接配置