我刚刚升级到iPhone SDK 4.0,并重新编译了我的静态库和应用程序,当我在iOS 3.1.3设备上运行它时(使用部署目标3.0),它说:
dyld: lazy symbol binding failed: Symbol not found: ___sync_fetch_and_add_4
Referenced from: /var/mobile/Applications/7CA42202-DA9D-4A10-918D-593362E18000/renderer.app/renderer
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: ___sync_fetch_and_add_4
Referenced from: /var/mobile/Applications/7CA42202-DA9D-4A10-918D-593362E18000/renderer.app/renderer
Expected in: /usr/lib/libSystem.B.dylib
我发现了这个blog post,但它似乎没有提供除
之外的任何建议尝试使用gcc 4.0代替4.2和
它应该已在SDK 4.0中修复。
他指向的代码似乎已在SDK 4.0中修复(他展示此行为的最小应用程序的示例对我来说很好),但我仍然遇到此错误。
答案 0 :(得分:1)
事实证明,我只编译了部署目标为3.0的应用程序;一旦我也编译了部署目标为3.0的库,它就能正常工作。