【发布时间】:2011-12-09 13:18:17
【问题描述】:
当我尝试在 iOS 4.3 模拟器 (Xcode 4.2) 中运行我的应用程序时,我在点击 @autoreleasepool{} 时崩溃了:
dyld: lazy symbol binding failed: Symbol not found: _objc_autoreleasePoolPush
我环顾四周,发现解决方法是添加libarclite_iphoneos.a。模拟器也有这个版本,libarclite_iphonesimulator.a。
我需要将这两个库都添加到我的项目中,以使其在模拟器和硬件上都运行。但无论我构建哪个,它都会抱怨另一个库是用于不受支持的架构。
例如,为模拟器构建:
ld: warning: ignoring file /Developer-4.2/Platforms/iPhoneOS.platform/
Developer/usr/lib/arc/libarclite_iphoneos.a, missing required architecture
i386 in file
如何同时解决这两个问题?还是我现在应该坚持使用旧的 NSAutoreleasePool 语法?
【问题讨论】:
-
似乎是铿锵的问题,因为在 llvm-gcc-4.2 的构建设置中更改编译器解决了我的问题
-
我认为它已经修复了;我已经好几个月没有遇到它了。
标签: cocoa-touch ios5 ios4 binary-compatibility