2011-12-09 122 views
0

我得到这个错误,而试图建立的iPhone模拟器:项目不适用于iphone模拟器。

d: warning: ignoring file /users/salehshah/SmartSwipe/libANMobilePaymentLib.a, file was built for archive which is not the architecture being linked (i386) Undefined symbols for architecture i386: 

请注意,我使用的Xcode 4.2与iOS 5.项目构建并运行在设备上的罚款。我认为在链接静态库时存在一些问题。可能是这个架构存在问题。

回答

2

您正在链接的静态库未针对模拟器进行编译。如果这是一个预编译的库,你会想创建一个版本,其中包括所有三种iOS架构armv6 armv7和i386。你可以通过自己编译每个单独的体系结构,然后使用lipo将它们链接在一起,参见man lipo

如果另一方面编译库作为应用程序目标的依赖关系,则生成设置有些问题。看看库的构建设置,即ARCHSVALID_ARCHS

+0

它也在模拟器上运行良好。突然它停止运行,我没有改变任何项目设置等。 – Saleh

+0

因此,如果你没有改变任何东西,就没有必要看看这些设置。你可能被宇宙射线击中。 ;-)在构建完成后查看日志导航器(Cmd-7)。图书馆建成了吗?它是否为正确的架构而建造(即i386)? – tonklon

+0

它给出了这个警告:文件是为存档而构建的,而不是被链接的体系结构(i386) – Saleh

相关问题