静态库在iOS模拟器上出错,适用于iOS设备 [英] Static library gives error on iOS simulator and works on iOS device

查看:121
本文介绍了静态库在iOS模拟器上出错,适用于iOS设备的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我正在开发一个iOS应用程序(iOS 6),我需要实现一个静态库。



我使用这个成功实现了静态库解释了如何将两个库构建捆绑成一个方便的胖文件。


Currently I'm working on a iOS application (iOS 6), In which I need to implement a static library.

I successfully implemented the Static library using this tutorial. And I successfully added the static library to other project and Installed the app to iPhone !. It's working successfully.

But my issue is when I tried to run it on my simulator some errors are coming:

 "_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)

I added the target architecture like:

I searched a lot but couldn't find a solution, why my library is working on device and giving error on simulator.

Please help me, thanks in advance

解决方案

You have propably built your library for the device architecture only. The iOS Simulator is not an emulator, meaning the code needs to be able to run on your Mac's architecture, which is obviously different from your device's architecture.

As a library is precompiled (for a specific architecture), the code it consists of doesn't get compiled again for your current target once you use it in your project. This is why you need to build your library for both architectures in the first place.

This SO Answer explains how to bundle two library builds into one handy "fat file".

这篇关于静态库在iOS模拟器上出错,适用于iOS设备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆