引入第三方类库冲突报错

在工程内引入了zbar 和baidushare 。在编译时,抛出了如下异常:

- duplicate symbol _base64_encode in:
-     /Users/admin/Develope/TestThirdPart/TestThirdPart/ZBarSDK/libzbar.a(symbol.o)
-     /Users/admin/Develope/TestThirdPart/TestThirdPart/BaiduSocialShare/BaiduSocialShare.framework/BaiduSocialShare(base64.o)
- ld: 1 duplicate symbol for architecture i386
- clang: error: linker command failed with exit code 1 (use -v to see invocation)

The advanced solution: re-compile yourself the libzbar.a following this steps:

1 - Download the source code (you must have Mercurial for mac):

hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar
cd zbar 
hg checkout iPhoneSDK-1.2.2 
open iphone/zbar.xcodeproj

2 - In the xcode project edit the "libzbar" scheme and select Release in Build configuration

libzbar_scheme


3 - Rename " base64_encode " in the "symbol.c" file,for example:
unsigned base64_encode ( char *dst, const char *src, unsigned srclen) 
=>  unsigned  base64_encode_zbar ( char  *dst, const char *src, unsigned  srclen)

4 - Compile libzbar for device AND for simulator, here the configuration:


4 - Find the compiled libzbar.a and go in the folder using Teminal.app, my folder:

/Users/kappe/Library/Developer/Xcode/DerivedData/zbar-gyozyrpbqzvslmfoadhqkwskcesd/Build/Products

In this folder you you should have two sub folder Release-iphoneos and Release-iphonesimulator

5 - using xcode command line tools build you universal lib:

lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a
 
the end  ;)  now you can use the libzbar.a created, both in device and simulator.




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值