[置顶] ZBarSDK中base64_encode与其他库中方法冲突解决方法


这个错误只会在模拟器中运行时出现
错误中提示base64.o 与 libzbar.a中symbol.o的方法存在冲突,在网上搜索了一下,发现是这两个库中都定义了_base64_encode,所以编译器就会报错重复定义.http://www.cocoachina.com/bbs/read.php?tid=177828

这篇文章中有提到修改源码,但是给的链接中我找了好几次才找到那个下载正确的包的地方:
http://sourceforge.net/code-snapshots/hg/z/zb/zbar/code/zbar-code-38e78368283d5afe34bbc0cedb36d4540cda3a30.zip

根据文章中说的修改symbol.c文件中base64_encode方法名以及被调用的地方,然后再分别在模拟器和真机上运行生成libzbar.a,真机上运行生成的文件可以直接通过Show in Finder中找到,但是模拟器生成的缺不行,http://my.oschina.net/leejan97/blog/284193 这篇文章帮助我找到了模拟器生成的libzbar.a文件,并轻松的合成了最后的文件http://download.csdn.net/detail/lyj617/8611865 这里可以下载

合并framework
lipo -create /Users///testFramework-iphoneossimulator.framework/testFramework /Users///testFramework-iphoneos.framework/testFramework -output /Users/**/Desktop/testFramework 将生成的testFramwork替换testFramework-iphoneossimulator.framework或者testFramework-iphoneos.framework下的testFramework,替换后的.framework文件就是合并后的文件
http://www.douban.com/note/378996622/

你可能感兴趣的:(源码,encode,冲突,libzbar)