您的位置:首页 > 大数据 > 人工智能

关于duplicate symbol _base64_encode错误

2014-09-21 17:14 363 查看
duplicate symbol for architecture i386

其实报的只有i386错误,也就是模拟器错误,你只要把i386下的base.o去掉即可,armv7和armv7s不去也可以。

查看静态库

命令:lipo -info AlipayRsaLib.a

输出:Architectures in the fat file: AlipayRsaLib.a are: armv7 armv7s i386

分解静态库(Fat)

命令:lipo -extract_family armv7 -output AlipayRsaLib_armv7_fat.a AlipayRsaLib.a

           lipo -extract_family i386 -output AlipayRsaLib_i386_fat.a AlipayRsaLib.a

查看Fat静态库

命令:lipo -info AlipayRsaLib_i386_fat.a (i386一个)

        lipo -info AlipayRsaLib_armv7_fat.a(armv7和armv7s两个)

分解Fat静态库为Thin(i386不需要分解,因为只有i386)

lipo AlipayRsaLib_armv7_fat.a -thin armv7 -output AlipayRsaLib_armv7_thin.a

lipo AlipayRsaLib_armv7_fat.a -thin armv7s -output AlipayRsaLib_armv7s_thin.a

提取各平台下的类文件

ar -x ../AlipayRsaLib_i386_fat.a

ar -x ../AlipayRsaLib_armv7s_thin.a

ar -x ../AlipayRsaLib_armv7s_thin.a

../为路径

举例:ar -x /Users/qiaoshisui/Desktop/那超/俏十岁App相关/WS_SECURE_PAY_SDK/客户端demo/iOS_SDK/AlipaySdkDemo/AlipaySdkDemo/alipay/AlipayRsaLib_i386_fat.a

覆盖各平台下的静态库 (此时生成的新AlipayRsaLib_i386_fat.a就没有了base64.o)

libtool -static -o ../AlipayRsaLib_i386_fat.a *.o

libtool -static -o ../AlipayRsaLib_armv7_thin.a *.o

libtool -static -o ../AlipayRsaLib_armv7s_thin.a *.o

合成新的静态库

lipo -create -output AlipayRsaLib.a AlipayRsaLib_i386_fat.a AlipayRsaLib_armv7_thin.a AlipayRsaLib_armv7s_thin.a

此时这个新的AlipayRsaLib.a里各平台下就都没有了 base64.o的类文件。

具体的还要根据xcode报的错,看到底是哪个静态库冲突了。防止删除后类缺失。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息