2010-07-07 9 views
0

Je viens de mettre à niveau vers iPhone SDK 4.0, et recompilé mes bibliothèques statiques et application, et quand je l'exécute sur un appareil avec iOS 3.1.3 (en utilisant cible de déploiement 3.0), il est dit:Symbole non trouvé erreur après la mise à niveau vers iPhone SDK 4.0, fonctionnant sur 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 

J'ai trouvé ce blog post, mais il ne semble pas donner des conseils autres que

  1. essayer d'utiliser gcc 4.0 au lieu de 4.2, et

  2. il aurait dû être corrigé dans le SDK 4.0.

Il semble que le code qu'il pointe vers était fixe SDK 4.0 (et son exemple d'une application minimale qui présente ce comportement fonctionne très bien pour moi), mais je suis toujours à obtenir cette erreur.

Répondre

1

Il s'est avéré que j'avais seulement compilé l'application avec la cible de déploiement de 3.0; Une fois que j'ai également compilé les bibliothèques avec la cible de déploiement de 3.0, cela a fonctionné correctement.