2011-11-13 15 views
6

Sto avendo un errore di compilazione nel simulatore iOS 4.3 non riesco davvero a capirlo, L'errore che ottengo è:libobjc.A.dylib errore di compilazione su iOS 4.3

dyld: lazy symbol binding failed: Symbol not found: _objc_retain 
    Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib 

dyld: Symbol not found: _objc_retain 
    Referenced from: /Users/ben/Library/Application Support/iPhone Simulator/4.3.2/Applications/75915A97-7C3D-489A-B7B0-7B6895A4B584/AppName.app/AppName 
    Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/lib/libobjc.A.dylib 

Nota:
La libreria a cui fa riferimento (libobjc.A.dylib) si trova in "Luogo previsto" Il codice funziona correttamente su un dispositivo iOS5 e in iOS5 Simulator.

+0

Si sta utilizzando ARC in questo progetto? La tua domanda potrebbe essere un [duplicato di questo?] (Http://stackoverflow.com/questions/7423489/objective-c-arc-errors-automatic-release-problems) –

+0

non usando ARC, il progetto è troppo complicato per accendilo. – oberbaum

+0

Questo simbolo non è nella lib 4.3, mi chiedo chi lo stia chiedendo. Vai a entrambe le directory e fai 'nm libobjc.A.dylib | grep retain', con 4.3 vedrai solo un simbolo _SEL_retain. Hai cercato di pulire il progetto e ricostruire? –

risposta

28

Aggiungere -fobjc-arc in Impostazioni Costruire => Altre Bandiere Linker (OTHER_LDFLAGS) per le diverse configurazioni

+1

non abilita questa forza per l'intero progetto? non è il punto di non abilitare l'arco? – stigi

+1

No, non lo forza per l'intero progetto. – mackross

+4

Lo si utilizza come un flag ** linker **, non un flag ** compilatore **, quindi non ha effetto su ARC in fase di compilazione, solo al momento del collegamento. – 0xced

1

Questo problema si verifica se si utilizza una libreria che utilizza ARC e volete build/funzionare su iOS meno recenti 4 dispositivi.

In Impostazioni build => Altre Bandiere Linker

  • Aggiungi -fobjc-arc
  • Se ancora non risolto, quindi aggiungere -weak_library /usr/lib/libobjc.A.dylib
Problemi correlati