tools linea instalar developers iphone xcode compiler-errors osx-snow-leopard

iphone - linea - Error en el proyecto xcode: ld: no se encuentra la biblioteca para-lcrt1.10.6.o



xcode en linea (12)

Agregue lo siguiente a ~ / .profile (para Mac OS X 10.5):

export C_INCLUDE_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/include export LIBRARY_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/lib

Dado el escenario limitado de Kirandan (Snow Leopard, Xcode 3.2.1, iphone, error de ruta de biblioteca), la respuesta de Stefan (arriba) funcionó para mí, excepto que mi excepción fue con 10.5 (-lcrt1.10.5.o).

Por otra parte, había visto una respuesta de Gabor Cselle (autor de reMail), y solucionó este problema específico mediante el uso de un enlace simbólico (alguien a quien se hace referencia en esta página, por cierto), pero señaló que no era la mejor manera.

Acabo de actualizar a Snow Leopard, instaló Xcode 3.2 y luego instaló el iPhone SDK 3 para SL.

En un proyecto, ahora obtengo el siguiente error en la compilación:

ld : biblioteca no encontrada para -lcrt1.10.6.o

He buscado alrededor de la red, pero no se puede encontrar nada útil.


Agregue lo siguiente a ~ / .profile (para Mac OS X 10.5):

export C_INCLUDE_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/include export LIBRARY_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/lib


Edite la configuración del proyecto -> En la pestaña de compilación -> Para Mac OS X Deployment Target, cámbielo a 10.5 para XCode 3 (no 10.6, incluso si está en 10.6) y vea si eso ayuda.

Para XCode 4, deberás configurarlo en 10.6

PD Asegúrate de establecer eso para todos los objetivos, no solo para liberar o depurar. (Si no lo hicieras, uno fallaría, el otro no)


El compilador normalmente usa crt1.o combinado con crt [i / n] .o y crt [begin / end] .o para apoyar a los constructores y destructores (funciones llamadas antes y después de main y exit).

Este error puede deberse a este archivo de biblioteca faltante para el destino de implementación específico.

En primer lugar, hacer una investigación, como:

  1. Enumere todos sus objetivos de despliegue:

    ls -la /Developer/SDKs

  2. Encuentre qué bibliotecas crt1 tiene para qué entorno

    find /Developer/SDKs -name crt1/*

    Podrías ver algo como:

    /Developer/SDKs/MacOSX10.5.sdk/usr/lib/crt1.10.5.o /Developer/SDKs/MacOSX10.5.sdk/usr/lib/crt1.o /Developer/SDKs/MacOSX10.6.sdk/usr/lib/crt1.10.5.o /Developer/SDKs/MacOSX10.6.sdk/usr/lib/crt1.10.6.o /Developer/SDKs/MacOSX10.6.sdk/usr/lib/crt1.o

Como puede ver en el ejemplo anterior, falta crt1.10.6.o para MacOSX10.5.

Solución 1

Puede resolverlo creando el enlace al archivo faltante que apunta al otro entorno, o puede cambiar su destino de implementación. P.ej

ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/crt1.10.6.o /Developer/SDKs/MacOSX10.5.sdk/usr/lib/

Otra razón por la que falta, es que puedes tener diferentes gcc instalados en tu sistema. P.ej:

which gcc xcrun -find gcc brew list | grep gcc; brew list gcc47

Solucion 2

Así que cuando compiles utilizando make, puedes especificar el compilador correcto por variable CC. P.ej

CC=/path/to/gcc-3.4 make

Solucion 3

Lo que también puede probar es especificar la variable de entorno de implementación de destino correcta para gcc, por ejemplo:

export MACOSX_DEPLOYMENT_TARGET=10.5

Si esto funciona, entonces puede agregar esta ruta de biblioteca a su perfil de shell ( ~/.profile ). P.ej

export C_INCLUDE_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/include export LIBRARY_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/lib

O por exportación temporal.

Como probar

Cree el archivo conftest.c ejemplo con el siguiente código:

#ifdef __GNUC__ yes; #endif

Y trata de compilarlo a través de:

gcc conftest.c cc conftest.c cc conftest.cc conftest.c


Este problema se resolvió configurando el destino de implementación de Mac OS X en 10.5 y después de esto se estableció nuevamente en Predeterminado del compilador :)


La configuración del destino de despliegue a los valores predeterminados del compilador resolvió el problema. No cambies nada más.


Parece que estás recogiendo bibliotecas de / usr / lib, lo cual es totalmente inadecuado para el iPhone SDK. Supongo que ha cambiado la configuración de compilación para agregar / usr / lib a las rutas de búsqueda de la biblioteca. Esto debería ser completamente innecesario en primer lugar, ya que / usr / lib está en las rutas de búsqueda estándar del compilador, pero si necesita tener una ruta de búsqueda modificada como esta, asegúrese de usar $(SDKROOT)/usr/lib lugar.


Perdió pocas horas en este ...

Curiosamente, para mí el problema era solo para Simulator-Debug. ¡No se quejaba por la versión de simulador o la depuración / versión de dispositivo!

De todos modos, ¡cambiar el objetivo de implementación a 10.5 resolvió esto por mí!


Pude solucionar este problema agregando lo siguiente a mi Makefile:

CFLAGS="$(OTHER_CFLAGS) -mmacosx-version-min=10.5" LDFLAGS="$(OTHER_LDFLAGS) -mmacosx-version-min=10.5"

Aparentemente, esto solo es necesario cuando se construye fuera de Xcode. Este problema me frustró tanto que pensé que sería útil compartir mi experiencia aquí.


Tuve el mismo mensaje de error, ninguna de las soluciones anteriores funcionó para mí. Lo resolví eliminando los archivos * .pbxuser y * .mode1v3 dentro del archivo xcodeproj.

  1. Controla / haz clic en el archivo xcode * .xcodeproj
  2. Seleccione la opción "Mostrar contenido del paquete" en el menú
  3. Se abrirá una ventana con los contenidos.
  4. Elimine los archivos pbxuser / mode1v3 que comienzan con su nombre de usuario
  5. Reconstruir el proyecto

Tuve el mismo problema en un Makefile de Fortran. Se agregó la siguiente opción después del compilador (para OSX 10.5):

-L / Developer / SDKs / MacOSX10.5.sdk / usr / lib

p.ej,

g77 -L / Developer / SDKs / MacOSX10.5.sdk / usr / lib

¡Ahora el compilador encontrará la biblioteca que deseas!


Tuve este problema cuando estaba usando Xcode 4 en una máquina y Xcode 3.2.6 en otra. Se supone que las dos versiones pueden intercambiar archivos .xcodeproj entre ellos, pero encontré que en el archivo project.pbxproj (dentro del directorio .xcodeproj), todavía había un par de lugares que leen:

MACOSX_DEPLOYMENT_TARGET = 10.6;

Salí de Xcode y fui y cambié las tres ocurrencias a:

MACOSX_DEPLOYMENT_TARGET = 10.5;

Después de volver a abrir el proyecto, pude volver a construir. ¡Uf!