SDWebImage库不适用于模拟器

时间:2014-11-10 04:38:46

标签: ios iphone libraries sdwebimage

我正在使用SDWebImage库。当我使用iPhone时它工作正常,但是当我使用模拟器编译时它不起作用。我收到这个错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_SDWebImageManager", referenced from:
      objc-class-ref in ViewController.o
      objc-class-ref in DetailViewController.o
  "_OBJC_CLASS_$_SDWebImagePrefetcher", referenced from:
      objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

但是在使用iPhone设备编译时它没有出现任何错误。我正在使用.a文件。

enter image description here

1 个答案:

答案 0 :(得分:1)

如果出现此错误,则不会为模拟器(i386)体系结构编译库。这个问题无法解决。

您还需要获取源代码,以便为此体系结构编译lib。或者您可能会问作者是否可以为您编译模拟器支持的版本。

也有可能从支持armv7的{​​{1}}库中制作“胖二进制文件”。这是因为armv7s具有相同的说明,扩展 armv7s

由于armv7具有完全不同的指令,因此无法在模拟器中使用仅限arm的库。

编辑有关详细信息,请参阅this support matrix

EDIT II 如果你自己编译lib,你也必须包含intel架构。由于模拟器在Mac(英特尔处理器,而不是ARM)上运行,因此正确的架构为i386。你会看到上面提到的矩阵了解更多细节。