iOS 4.3上的libobjc.A.dylib编译错误
我在iOS Simulator 4.3中遇到了一个编译错误,我无法真正理解它,我得到的错误是:iOS 4.3上的libobjc.A.dylib编译错误,ios,xcode,Ios,Xcode,我在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/AppNam
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模拟器上运行良好。添加
-fobjc arc
内部版本设置=>其他链接器标志(其他\u LDFLAGS)用于不同的配置
如果使用使用ARC的库并希望
在较旧的iOS 4设备上构建/运行
内置设置=>其他链接器标志
- 添加
-fobjc arc
- 如果尚未解决,则添加
-weak_library/usr/lib/libobjc.A.dylib
nm libobjc.A.dylib | grep retain
,使用4.3您将只看到一个符号_SEL_retain。尝试清理项目并重建?升级到XCode 5.4和IOS 6.0后,我遇到了完全相同的问题。被接受的答案对我不适用。有人有其他想法吗?这股力量不是为整个项目启用了arc吗?不启用arc不是很重要吗?不,它不会强制整个项目使用它。您将它用作链接器标志,而不是编译器标志,因此它不会在编译时影响arc,只会在链接时影响arc。这很有效,但如果项目只有少数需要此标志的文件,并且当我们可以分别为每个文件添加标志时,为什么我们需要在项目级别上添加这个?