duplicate symbol _OBJC_IVAR_$_Decoder.image in:
     /Users/......./ScanditSDK/libscanditsdk-iphone-2.1.11.a(Decoder-3DF771F40A970F8E.o)
     /Users/......./RedLaser/libRedLaserSDK.a(Decoder-DD22F2D71AAA0F2E.o)

   duplicate symbol _OBJC_IVAR_$_Decoder.cropRect in:
    /Users/......./ScanditSDK/libscanditsdk-iphone-2.1.11.a(Decoder-3DF771F40A970F8E.o)
    /Users/......./RedLaser/libRedLaserSDK.a(Decoder-DD22F2D71AAA0F2E.o)

................................................................
................................................................
   ld: 20 duplicate symbols for architecture armv7
   clang: error: linker command failed with exit code 1 (use -v to see invocation)

当我尝试同时导入RedLaser和Scandit SDK时,出现这些重复符号的问题。任何人都可以帮助解决这个问题...

提前致谢。

最佳答案

看起来两个库都有一个具有相同名称的类。这很常见,因为他们正在解决相同的问题:扫描和解码条形码。

如果没有提供者之一更改类的名称,就无法避免此错误。与您的问题联系。

实际上,作为SDK提供程序,RedLaser和Scandit在默认情况下肯定应使用namespaces。使用名称空间的主要原因之一是避免重复的符号错误。

您的另一个选择是删除一个库(或两者都删除),并使用其他一些条形码扫描SDK,例如ZXingZbarpdf417.mobi

10-08 11:28