Xcode 4.3.2 我使用 ARC 编写了一个静态库。
当我把它放到一个项目中,并在 iOS 4.3 模拟器上测试时。 (基于iOS 5.1,部署target 4.3)
如果项目使用 ARC,它工作正常。
如果项目没有使用ARC,遇到错误,例如:
dyld: lazy symbol binding failed: Symbol not found: _objc_retainAutoreleasedReturnValue Referenced from: /Users/cnzzmobile/Library/Application Support/iPhone Simulator/4.3.2/Applications/A4EEB0A0-AC16-402C-B426-46667225F66D/test.app/test Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation
dyld: Symbol not found: _objc_retainAutoreleasedReturnValue Referenced from: /Users/cnzzmobile/Library/Application Support/iPhone Simulator/4.3.2/Applications/A4EEB0A0-AC16-402C-B426-46667225F66D/test.app/test Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation
我搜索了很多,但找不到可以解决这个问题的答案。
我删除了仅 iOS5 支持的 jsonobjcet,-fobjc-arc 也不起作用。
谢谢
最佳答案
我发现在“其他链接器标志”处添加“-fobjc-arc”可以解决基于 iOS 5.1 的 Xcode 4.3.2 上的这个问题。因为 xcode 找不到支持 ARC 链接的库。
请注意:在“其他链接器标志”而不是“编译源”处添加“-fobjc-arc”。
但这仍然不适用于基于 iOS 4.3 的旧版本 Xcode 4(snow leopard)。
我发现一些库无需添加任何特殊设置即可在 ARC 和非 ARC 项目上工作。我还在等待如何做到这一点的答案。使用纯 C 编写代码?
关于objective-c - 静态库 (ARC) 在非 ARC 应用程序上工作,遇到错误 : dyld: lazy symbol binding failed: Symbol not found: _objc_retainAutoreleasedReturnValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11046459/