添加libZSDK_API.a时,Restkit的-ObjC标志会导致编译错误

fre*_* AR 3 iphone zebra-printers ios ios6

我正在使用RestKit来使用Web服务.RestKit工作正常,直到我尝试添加libZSDK_API.a库(此库是通过网络或蓝牙管理斑马打印机)

几个教程指出将RestKit添加到iOS项目的这一步:

  • 在"其他链接器标志"中添加值-ObjC

但是当我添加库时,这个标志(-ObjC)导致编译错误,当我删除此标志时,iOS应用程序正确编译,但是当我执行应用程序时崩溃,因为Project没有-ObjC标志.

我收到此编译错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_Linea", referenced from:
      objc-class-ref in libZSDK_API.a(LineaBtPrinterConnection.o)
     (maybe you meant: _OBJC_CLASS_$_LineaBtPrinterConnection)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

Ovi*_*ler 5

Zebra API通过IPC Linea Sled设备链接到另一个用于蓝牙通信的API.LineaBtPrinterConnection指向该库文件的链接(libdtdev.a).通常情况下,如果您不关心通过雪橇的BT通信,则不必链接该库,但由于您正在添加该-ObjC标志,因此它正在加载该文件并查找该库.

如果将libdtdev.a库添加到项目中,则该错误应该消失.该库应该包含在Zebra的"Demos"项目文件夹下的下载中.如果您需要实际使用底座,根据底座的固件版本,您可能需要IPC的新版本,如果您在其网站上注册为开发人员,则可以获得该版本.