找不到符号错误升级到iPhone SDK 4.0后,在3.1.3

问题描述:

我刚刚升级到iPhone SDK 4.0上运行,并重新编译我的静态库和应用程序,当我与iOS 3.1.3的设备上运行它(使用部署目标3.0),它说:找不到符号错误升级到iPhone SDK 4.0后,在3.1.3

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,但它似乎并没有给予比

  1. 尝试其他使用GCC 4.0,而不是4.2的任何建议,

  2. 它应该已经在SDK 4.0中修复了。

看来,代码他指出固定在SDK 4.0(和他的最小的应用程序,展示此行为对我的作品精细的例子),但我仍然得到这个错误。

事实证明,我只编译了部署目标为3.0的应用程序;一旦我还编译了部署目标为3.0的库,它正常工作。