升级到运行于3.1.3的iPhone SDK 4.0后,找不到符号错误

时间:2010-07-07 23:16:12

标签: iphone ios4 dynamic-linking

我刚刚升级到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,但它似乎没有提供除

之外的任何建议
  1. 尝试使用gcc 4.0代替4.2和

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

  3. 他指向的代码似乎已在SDK 4.0中修复(他展示此行为的最小应用程序的示例对我来说很好),但我仍然遇到此错误。

1 个答案:

答案 0 :(得分:1)

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