【发布时间】:2011-11-13 13:58:40
【问题描述】:
我在 iOS Simulator 4.3 中遇到编译错误我实际上无法弄清楚,我得到的错误是:
dyld: lazy symbol binding failed: Symbol not found: _objc_retain
Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib
dyld: Symbol not found: _objc_retain
Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib
注意:
被引用的库 (libobjc.A.dylib) 实际上位于“预期位置”
该代码在 iOS5 设备和 iOS5 模拟器上运行良好。
【问题讨论】:
-
你在这个项目中使用 ARC 吗?你的问题可以是duplicate of this one?
-
不使用ARC,项目太复杂,无法开启。
-
这个符号不在 4.3 库中,我想知道是谁在请求这个。转到两个目录并执行
nm libobjc.A.dylib | grep retain,在 4.3 中您只会看到一个符号 _SEL_retain。尝试清理项目并重建? -
升级到 XCode 5.4 和 IOS 6.0 后,我遇到了完全相同的问题。接受的答案对我不起作用。有人有其他想法吗?