2011-11-13 23 views
6

estoy teniendo un error de compilación en el simulador de iOS 4.3 que puede en realidad no averiguarlo, El error que consigo es:libobjc.A.dylib compilar error en 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 biblioteca a la que se hace referencia (libobjc.A.dylib) está realmente en el 'Lugar esperado' El código funciona bien en un dispositivo iOS5 y en iOS5 Simulator.

+0

¿Está utilizando ARC en este proyecto? ¿Podría su pregunta ser un [duplicado de este?] (Http://stackoverflow.com/questions/7423489/objective-c-arc-errors-automatic-release-problems) –

+0

no usando ARC, el proyecto es demasiado complicado para encenderlo. – oberbaum

+0

Este símbolo no está en la versión 4.3 lib, me pregunto quién lo está solicitando. Vaya a ambos directorios y haga 'nm libobjc.A.dylib | grep retain', con 4.3 verás solo un símbolo _SEL_retain. Trató de limpiar el proyecto y reconstruir? –

Respuesta

28

Añadir -fobjc-arc en configuración de generación => Otras banderas Linker (OTHER_LDFLAGS) para las diferentes configuraciones

+1

¿esta fuerza no permite el arco para todo el proyecto? no es el punto de no habilitar el arco? – stigi

+1

No, no lo forza para todo el proyecto. – mackross

+4

Lo usa como un indicador ** vinculador **, no como un indicador ** compilador **, por lo que no afecta a ARC en tiempo de compilación, solo en tiempo de enlace. – 0xced

1

Este problema se produce si utiliza una biblioteca que utiliza ARC y desea acumulación/ejecutar en IOS de edad avanzada 4 dispositivos.

En la configuración de creación => Otras banderas Linker

  • Añadir -fobjc-arc
  • Si aún no resuelto, a continuación, añadir -weak_library /usr/lib/libobjc.A.dylib
Cuestiones relacionadas