Redlaser SDK конфликтует с Scandit SDK

    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, у меня возникает проблема с этими дублирующимися символами. Может кто-нибудь помочь решить эту проблему...

Заранее спасибо.

1 ответ

Решение

Похоже, что обе библиотеки имеют класс с одинаковым именем. В этом нет ничего необычного, поскольку они решают одну и ту же проблему: сканируют и декодируют штрих-коды.

Вы не можете избежать этой ошибки, если один из провайдеров не изменит название класса. Свяжитесь с ними со своей проблемой.

Фактически, как поставщики SDK, RedLaser и Scandit должны определенно использовать пространства имен по умолчанию. Одна из главных причин использования пространств имен - избегать повторяющихся ошибок символов.

Другой вариант - удалить одну из библиотек (или обе) и использовать другой SDK для сканирования штрих-кодов, например ZXing, Zbar или http://pdf417.mobi/.

Другие вопросы по тегам