Al intentar compilar con Xcode, recibo el siguiente error:

  **Ld /Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator/iKosher.app/iKosher normal i386
cd /Users/doronkatz/Sites/xCode/iKosher
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Xcode4/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Xcode4/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk -L/Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator -L/Users/doronkatz/Sites/xCode/iKosher -F/Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator -filelist /Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Intermediates/iKosher.build/Debug-iphonesimulator/iKosher.build/Objects-normal/i386/iKosher.LinkFileList -mmacosx-version-min=10.6 -all_load -ObjC -Xlinker -objc_abi_version -Xlinker 2 -lz -framework Security -framework CFNetwork -framework CoreData -framework Foundation -framework UIKit -framework CoreGraphics -framework QuartzCore -o /Users/doronkatz/Library/Developer/Xcode/DerivedData/iKosher-bphnihrngmqtkqfgievrrumzmyce/Build/Products/Debug-iphonesimulator/iKosher.app/iKosher
Undefined symbols for architecture i386:
"_UTTypeCreatePreferredIdentifierForTag", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_UTTypeCopyPreferredTagWithClass", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_kUTTagClassMIMEType", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_kUTTagClassFilenameExtension", referenced from:
+[ASIHTTPRequest mimeTypeForFileAtPath:] in ASIHTTPRequest.o
"_SCNetworkReachabilitySetCallback", referenced from:
-[Reachability startNotifier] in Reachability.o
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
-[Reachability startNotifier] in Reachability.o
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
-[Reachability stopNotifier] in Reachability.o
"_SCNetworkReachabilityCreateWithName", referenced from:
+[Reachability reachabilityWithHostName:] in Reachability.o
"_SCNetworkReachabilityCreateWithAddress", referenced from:
+[Reachability reachabilityWithAddress:] in Reachability.o
"_SCNetworkReachabilityGetFlags", referenced from:
-[Reachability currentReachabilityStatus] in Reachability.o
-[Reachability isReachable] in Reachability.o
-[Reachability isConnectionRequired] in Reachability.o
-[Reachability isConnectionOnDemand] in Reachability.o
-[Reachability isInterventionRequired] in Reachability.o
-[Reachability isReachableViaWWAN] in Reachability.o
-[Reachability isReachableViaWiFi] in Reachability.o
...
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status**

No se lo que significa.

InformationsquelleAutor Doz | 2011-01-29

17 Comentarios

  1. 91

    Si usted recibe este tipo de cosas que aparecen de repente, por lo general significa que el proyecto es que faltan algunos marcos de trabajo que necesita. Las bibliotecas y proyectos dependientes pueden requerir marcos, por lo que si ha añadido recientemente a continuación, que pueden causar este error.

    Para agregar marcos, haga clic derecho sobre el nombre del proyecto en la vista de proyecto, seleccione Add, a continuación, seleccione Existing frameworks... de la lista. A continuación, encontrará el marco con los símbolos que se está perdiendo.

    Cuanto a cómo encontrar qué marcos de referencia que usted necesita, he encontrado a través de google el más fácil, aunque probablemente se podría utilizar el Xcode de búsqueda de ayuda demasiado. La búsqueda de uno de los símbolos, haciendo su mejor esfuerzo para trabajar la unmangled nombre (por ejemplo, SCNetworkReachabilityGetFlags) y, a continuación, la primera documentación de enlace que se encuentra en developer.apple.com a menudo es la de la derecha. Por lo general, no tengo que buscar muy lejos. En este caso, que es esta página:

    https://developer.apple.com/documentation/systemconfiguration/scnetworkreachability-g7d

    A continuación, en la parte superior de la página, se dice que marco a utilizar, SystemConfiguration en este caso. Por lo tanto, añadir que para el proyecto y compilar de nuevo.

    A continuación, sólo seguir haciendo esto hasta que funcione…

    Edit: yo nunca he usado el simulador, pero esto es lo que haces en el dispositivo – supongo que es lo mismo…

  2. 63

    A veces hay archivos de origen que faltan de su destino.

    1. examinar los símbolos que faltan
    2. destino->fases de construcción->compilar la fuente
    3. agregar los que faltan los archivos de origen si no están en la lista
    4. comando+b por el éxtasis

    Puede seleccionar los archivos que parecen ser «desaparecidos» y marca la casilla a la derecha de la barra de utilidades que sus casillas de verificación está seleccionada para el Objetivo que se están construyendo.

    • A menudo esto puede ocurrir cuando la fusión de dos archivos de proyecto uncleanly y la meta de afiliación se pierde.
    • Muchas gracias, de alguna manera xcode aún no ha agregado los datos requeridos .m archivo en la construcción de las fases de la etapa!
    • Gracias 🙂 Agregar 2 archivos para el proyecto y sólo después de hacer los pasos estaba todo O. K
  3. 31

    Lo resuelto usar el siguiente método (para XCode 4):

    1) Seleccione el proyecto en el proyecto de navegación de la ventana que le mostrará el resumen de un proyecto en derecho

    2) Seleccione la 4ª pestaña fases de construcción

    3) Seleccione Vínculo binario con opción de biblioteca

    4) Añadir un marco para la que se van a

    5) Mueva el marco de la carpeta principal a los marcos de la carpeta

    6) Construir de nuevo y los errores se han ido.

    • Gracias. He encontrado esta respuesta en la búsqueda de MFMailCompose, y resuelto mediante la adición de la MessageUI.marco
  4. 16

    El problema es que el objetivo de la membresía para el agregado presentada falta a la aplicación de destino .Así que seleccione el archivo y agregar la marca de verificación para el cuadro de la meta de afiliación

    Por ejemplo, si el error se muestra en una definición de método en común.msímbolo(s) no se ha encontrado para la arquitectura i386

    • +1 para utilizar el Panel 🙂
    • Tengo este Símbolo No se Encuentra el error, pero la situación fue mucho más simple. He añadido un nuevo módulo (archivo) con una nueva función que necesitaba para uno de mis Planes. Cuando he construido un esquema diferente de un par de semanas después de la llamada a la función no se encontró. Agregando que el objetivo era todo lo que necesitaba.
  5. 16

    Pensado en añadir mi solución para esto, después de pasar un par de horas en el mismo error 🙁

    Los chicos de arriba estaban en lo correcto, que la primera cosa que usted debe comprobar es si había perdido la adición de cualquier marcos, consulte los pasos proporcionados por Pruthvid arriba.

    Mi problema, resultó, era una compilación de la clase después de la falta que he eliminado, y más tarde se añadió de nuevo.

    Comprobar su «Compilar las Fuentes», como se muestra para que el error en las clases. Añadir los que faltan clases que creó.

    • GRACIAS… Esto funciona para mí. Yo estaba implenting una clase personalizada. Copia tanto de la clase personalizada. h and .m en el proyecto. Hizo un #importar en que, siendo el error que sale. La adición de la clase personalizada’ .m en «Compilar las Fuentes» de la sección resuelto!
    • Impresionante! Yo tenía el mismo problema que Rocotilos, me importan una clase personalizada, importado, pero todavía tenía un problema. Esto hizo que el truco! Muchas gracias!
  6. 7

    Asegúrese de que la falta de marco aparece realmente bajo «Target/Fases de construcción/Link Binario Con las Bibliotecas» si no acaba de añadir. Como se mencionó antes, normalmente indica una falta de marco.

    En mi proyecto hay dos idénticos marco de la lista, cuando me he quitado uno de ellos tuve este error, ya que también se quita el formulario de la «Link Binario Con las Bibliotecas» de la lista.
    He añadido de nuevo y el problema desapareció (y todavía tengo dos marcos en la lista)

  7. 5

    He arreglado un error similar en mi proyecto cambiando la Build Settings > Arquitecturas para TODOS de mis objetivos.

    El problema:
    Cuando he actualizado a partir de Xcode 4.4 a Xcode 4.5, mi proyecto todavía compilado correctamente en el simulador pero no compila en los dispositivos. En dispositivos con los que se lanzó el error «símbolo(s) no se encuentra en la arquitectura armv7s,» junto con la engañosa «de Apple Mach-O Error del Vinculador» y «sonido: error: enlazador de comandos de error con el código de salida 1 (uso -v para ver invocación).»

    La causa (en mi caso):
    Mi proyecto tenía varios objetivos, y aunque la Build Settings > Arquitecturas para el principal objetivo fue creado para incluir armv7s la arquitectura, el principal destino dependía de otro de los objetivos (enumerados en Fases de construcción > Dependencias), y yo no había pensado para restablecer la Configuración de generación > Arquitecturas para el otro de destino, y yo tenía que cambiar, que incluyen armv7s.
    Supongo que el simulador de dispositivo y ejecutar en diferentes arquitecturas, y es por eso que el simulador fue bien, mientras que el dispositivo no estaba.

  8. 4

    ¿Su proyecto depende de otro proyecto, y es que un destino en el que un conjunto de proyectos a ser una dependencia directa de su principal objetivo? Si este es el caso, y que la dependencia no está configurado, el dependiente de destino puede no estar recibiendo construido para todas las configuraciones (es decir, el simulador)

    Sólo una conjetura.

  9. 3

    Otra de las situaciones que pueden causar este problema es si el código llama en C++, o es llamado por el código de C++. Tuve un problema con mi cuenta .c archivo de la función de utilidad muestra como «símbolo no se encuentra» cuando se llama desde Obj-C. La solución fue cambiar el tipo de archivo: en Xcode 4, el uso extendido del panel de información para establecer el tipo de archivo a «Objective-C++ Source»; en Xcode 3, el uso de «Obtener Información» para cambiar el tipo de archivo a «de la fuente.cpp.objcpp».

  10. 3

    En mi caso ninguno de los publicados soluciones trabajado. Tuve que borrar el proyecto y hacer un nuevo checkout desde el servidor SVN. Qué suerte la mía, el proyecto fue organizado en un sistema de control de versiones. No sé lo que haría de otra manera.

  11. 1

    En un proyecto de C++ usando un definido templatized clase, mientras reciben el mismo error, he seleccionado .archivo cpp con el definido templatized clase en el Navegador de Proyectos, a continuación, Elimine > Eliminar la Referencia. También los asociados .h archivo, mientras que todavía se hace referencia en el proyecto, debe tener una instrucción #include a el .cpp de la siguiente manera:

    #ifndef __CircularBuffer__CircularBufferT__
    #define __CircularBuffer__CircularBufferT__
    ... snip ...
    #include "CircularBufferT.cpp"
    #endif /* defined(__CircularBuffer__CircularBufferT__) */

    Si quieres ver, un simple ejemplo de proyecto es en github:

    Esto es un poco de direccionamiento indirecto engaño y no recuerdo la fuente original de esta solución.

  12. 1

    Si este error aparece de repente, significa que el proyecto es que faltan algunos marcos. Las bibliotecas y proyectos dependientes pueden requerir marcos, por lo que si ha añadido recientemente a continuación, que pueden causar este error.

    Para agregar marcos, haga clic derecho sobre el nombre del proyecto en la vista de proyecto, seleccione Agregar y, a continuación, seleccione los marcos Existentes de la lista. A continuación, encontrará el marco con los símbolos que se está perdiendo.

    La otra cosa es si ha agregado ninguna de las clases en el compilado de los recursos y quitó las clases del proyecto, a continuación, aparece el error. La mejor cosa a hacer es quitar las clases de la compilación de los recursos(Build settings–> compilar las fuentes) que han quitado el proyecto.

    En mi caso he añadido la admob clases en el proyecto y se compila el proyecto. En un caso posterior, no quiero incluir admobs en mi proyecto, así que he eliminado las referencias de admob para las clases de mi proyecto. Cuando se produjo este error he borrado el .clase m de mi admob de compilar recursos resuelto este problema.

  13. 1

    Esto me pasó al intentar copiar el PSPDFKIT demo de la biblioteca en mi proyecto. He seguido todas las instrucciones en el sitio + todas las sugerencias en esta página.. por alguna razón seguía dando el error anterior, el problema era que si yo grepped el mensaje en el método de error.. es solo apareció en el binario (obviamente no tengo acceso al código fuente b/c que tengo que pagar por ello).

    Me di cuenta de esto en la página de instrucciones, aunque:

    símbolo(s) no se ha encontrado para la arquitectura i386

    Así que me fui a las entrañas de ese archivo de configuración y encontré este:

    OTHER_LDFLAGS=$(inherited) -ObjC -fobjc-arc -lz -framework CoreText -framework CoreMedia -framework MediaPlayer -framework AVFoundation -framework ImageIO -framework MediaPlayer -framework MessageUI -framework CoreGraphics -framework Foundation -framework QuartzCore -framework AVFoundation -framework CFNetwork -framework MobileCoreServices -framework SystemConfiguration -weak_framework UIKit

    Luego me fui para el proyecto de ejemplo proporcionado por el autor de la mencionada biblioteca.. y noté que el anterior banderas donde copiado a la otra enlazador en mi build settings.. sin embargo en mi proyecto.. que no fueron!.. Así que simplemente he copiado y pegado en mi configuración de generación del proyecto otros enlazador y todo funcionó!

    tomar distancia del punto: si usted está confiando en algunas .xcconfig archivo en su instalación, vuelva a comprobar con un ejemplo de código fuente o algo y asegúrese de que se haya aplicado.. que no fue aplicado correctamente en mi caso

  14. 0

    Otra razón por la que esto podría estar sucediendo es cuando se ACTUALIZA un SDK.

    Si simplemente eliminar el grupo y, a continuación, arrastre y suelte la nueva carpeta de proyecto, la «Ruta de Búsqueda de Biblioteca» tendría tanto que el Sdk. Para resolver, simplemente eliminar la antigua ruta del SDK de.

  15. 0

    Había utilizado un CLGeocoder sin la adición de un Núcleo.Ubicación Del Marco. Básicamente, este error puede significar varias cosas. Espero que esto ayude a alguien más.

  16. 0

    Me he bloqueado por esto antes sólo para darse cuenta de que he añadido un solo de datos @interfaz y se olvidó de agregar el vacío @ejecución del bloque.

Dejar respuesta

Please enter your comment!
Please enter your name here