我正在使用 RestKit 来使用网络服务。 RestKit 工作正常,直到我尝试添加 libZSDK_API.a 库(该库用于通过网络或蓝牙管理 zebra 打印机)
一些教程指出了将 RestKit 添加到 iOS 项目的步骤:
- 在“其他链接器标志”中添加值 -ObjC
但是这个标志 (-ObjC) 在我添加库时导致编译错误,当我删除这个标志时,iOS 应用程序编译正确但当我执行应用程序时崩溃,因为项目没有 -Objcflags。
我遇到了这个编译错误:
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)
最佳答案
Zebra API 链接到另一个 API,通过 IPC Linea Sled 设备进行蓝牙通信。 LineaBtPrinterConnection
链接到该库文件 (libdtdev.a
)。通常,如果您不关心通过 sled 进行的 BT 通信,则不必链接该库,但是由于您要添加 -ObjC
标志,它正在加载该文件并且寻找那个图书馆。
如果您将 libdtdev.a
库添加到您的项目中,该错误应该会消失。该库应该包含在您从 Zebra 下载的“Demos”项目文件夹下。如果您需要实际使用 sled,根据 sled 的固件版本,您可能需要 IPC 的新版本,您可以通过以下方式获得 sign up as a developer on their site.
关于iphone - 当我添加 libZSDK_API.a 时,Restkit 的 -Objcflags会导致编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15797711/