目前我正在开发一个iOS应用程序(iOS 6),我需要在其中实现一个静态库。
我使用此tutorial成功实现了静态库。我成功地将静态库添加到其他项目并将应用程序安装到iPhone!它运作成功。
但我的问题是当我试图在我的模拟器上运行它时会出现一些错误:
"_OBJC_CLASS_$_MMPAlert", 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)
我添加了目标架构,如:
我搜索了很多但找不到解决方案,为什么我的库在设备上工作并在模拟器上出错。
请提前帮助我
答案 0 :(得分:5)
您只为设备架构构建了库。 iOS模拟器不是模拟器,这意味着代码需要能够在Mac的架构上运行,这显然不同于您设备的架构。
由于库是预编译的(对于特定的体系结构),一旦在项目中使用它,它所包含的代码就不会再为当前目标编译。这就是为什么您需要首先为两种体系结构构建库。
This SO Answer解释了如何将两个库构建捆绑成一个方便的“胖文件”。