将Redis库编译到iOS项目时出错(" _OBJC_CLASS _ $ _ ObjCHiredis",引自:)

时间:2015-03-24 09:25:06

标签: ios xcode redis ios-simulator linker-errors

我正在尝试将Redis模拟器静态库集成到我的iOS项目中并完成以下操作。

  1. 将静态库拖放到我的项目文件夹
  2. 在构建设置中添加标题搜索路径
  3. 检查静态库是否已添加到设置中的构建阶段中。
  4. 设置标题搜索路径
  5. 其他链接器标记设置为“ -all_load
  6. 我不确定我哪里出错了但是在编译时会出现以下错误。

    enter image description here

    非常感谢这方面的任何帮助。

2 个答案:

答案 0 :(得分:0)

我也遇到了这样的错误,并且发现在"构建阶段"中添加了.m文件。 - > "编译来源"为目标解决了我的问题。

实际上,如果我们错过勾选目标名称"添加到目标"添加任何新库时的名称。 (对于您的情况,拖放后您可能会看到一个对话框,其中包含根据需要复制项目的选项,添加到目标等。)

最后构建并运行。希望这能解决你的问题!

答案 1 :(得分:0)

您要拖动的静态库不是为i386架构(模拟器)构建的,尝试在设备上运行您的应用程序,或者为设备构建。基本上,您的应用程序与相应的库将适用于它所构建的所有此类架构(armv7,armv64)。

如果您想在模拟器上使用该库并构建您的应用程序,您需要为i386构建的静态库。这可以由静态库的开发人员提供。

基本上,使用静态库为i386和armv7(任何所需的体系结构)创建一个胖(静态库)文件,并随静态库的SDK一起提供,该库可在模拟器和设备上运行。

通过在各个体系结构静态库上执行lipo命令来创建fat文件。