Символ не найден после обновления до iPhone SDK 4.0, работающего на 3.1.3 - PullRequest
0 голосов
/ 08 июля 2010

Я только что обновился до 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

Я нашел это сообщение в блоге , но, похоже, он не дает никаких советов, кроме

  1. попробуйте использовать gcc 4.0 вместо 4.2 и

  2. это должно быть исправлено в SDK 4.0.

Похоже, что код, на который он указывает , был исправлен в SDK 4.0 (и его пример минимального приложения, демонстрирующего такое поведение, прекрасно работает для меня), но я все еще получаю эту ошибку.

1 Ответ

1 голос
/ 08 июля 2010

Оказывается, я только скомпилировал приложение с целью развертывания 3.0; После того как я также скомпилировал библиотеки с целью развертывания 3.0, он работал правильно.

...