2012-07-19 15 views
24

Tengo un error en tiempo de compilación. Parece ser extraño. funcionó como aplicación de vista detallada, pero el uso de vista única no parece funcionar. esto es los detalles del error:Error de comando del vinculador: 'ld: símbolo (s) no encontrado (s) para la arquitectura i386'

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_RssArticle", referenced from: 
     objc-class-ref in RssXmlParser.o 
    ld: symbol(s) not found for architecture i386 
    clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+0

están utilizando Xcode 4.3? –

Respuesta

57

prueba los siguientes pasos:

  1. abrir el proyecto en Xcode.

  2. En el lado izquierdo de la ventana/panel de XCode haga clic en el nombre de su proyecto en la parte superior.

  3. Ahora seleccione el objetivo en el panel lateral derecho de XCode.

  4. Seleccione Crear fases de la parte superior derecha del panel. (aquí otra opción será Configuraciones de compilación, Reglas de compilación)

  5. En el mismo panel, abra las "Fuentes de compilación", aquí verifique: ¿están todos los archivos (.m) enumerados? si no todos los archivos, haga clic en el signo (+) en la parte inferior para añadir (.m) los archivos que no está en la lista

  6. Como por su error parece RssXmlParser no existe, agregar este y compilar de nuevo

Funcionará bien ahora.

+0

¿Para qué versión de X-Code funciona esto? Parece que no puedo encontrar a Target en el lado derecho ... –

+1

@CameronTarbell En XCode 5.1, se ve así: http://i.imgur.com/G7OCboX.png – Glide

+0

@iOSTest Me encontré con el mismo problema. Sin embargo, quiero saber por qué sucede esto. – Glide

0

Resolví el mismo problema porque creé componentes como proyectos separados. Después de agregar las carpetas al proyecto principal, olvidé eliminar los archivos .plist, .string y extra main.m de los directorios del grupo de componentes importados.

La eliminación de estos resuelto mi problema ya que la aplicación fue, obviamente, recibiendo órdenes de construcción en conflicto ...

0

me encontré con este error debido a la duplicación nombres de archivo (que había creado subclases NSManagedObjectContext automáticamente en los datos básicos a través del menú de edición).

A partir de XCODE 5.0, simplemente salga y reinicie y Xcode debe reconocer esto y arreglarlo para usted si hace clic en la alerta amarilla en el panel de la izquierda

2

En mi caso, por error creado una nueva subclase de UIView con .h y .c archivos en lugar de los archivos .h y .m. Cambiar las extensiones fue fácil, pero no pensé en cambiar el contenido de los archivos .m. Así que mis archivos .h tenido

#ifndef My_Project_MPMyView_h 
#define My_Project_MPMyView_h 

#import <UIKit/UIKit.h> 

@interface MPMyView : UIView 

@end 

#endif 

y mis .m archivos de forma incorrecta tenían

#include <stdio.h> 

Cuando cambié mis .m archivos a

@interface MPMyView : UIView 

@end 

@implementation MPMyView 

@end 

El error de vinculador se fijó.

13

Me di cuenta de que tenía que usar el archivo .xcworkspace en lugar del archivo .xcodeproj.

+1

wow, me siento muy estúpido en este momento. – Machado

+0

Oh, Dios mío. Funcionó ... pero ¿por qué? – Fomentia

+0

Esto funcionó muy bien para mí, pero también me gustaría saber por qué. ¿Alguna explicación? – Phantomazi

0

Un error similar me sucedió en Xcode 6.4. Parece un error de Xcode.

Mi solución fue ir al archivo ".o" que causó el error, desmarcar y volver a verificar las membresías de destino que necesita.

7

Producto -> Limpio entonces Producto -> Ejecutar :)

0

yo creo que puede ser que usted está tratando de crear dos archivos .C diferente (con la función principal) en un proyecto. C solo le permite tener una entrada principal en cada proyecto.

26

no veo a nadie lo que sugiere que ir a la terminal e ir al directorio donde es el proyecto y ejecutar

xcodebuild -verbose

para ver detallada del error y sólo leer el error ayuda mucho del tiempo

+0

esto no es exactamente una respuesta, pero aun así esta + respuesta seleccionada me ayudó a resolver mi problema. Personalmente, tenía dos archivos .m de complementos (servidos con el mismo propósito) en la lista de archivos .m. Quité uno y lo construí de nuevo y eso resolvió el problema. –

0

No sé cómo funcionó. Pero simplemente cerré el xcode y volví a abrir haciendo clic en el archivo xcworkspace y funcionó para mí. puede intentar con suerte que esto pueda resolver su problema, gracias.

0

Mantenga presionada la tecla Alt. En la barra de herramientas superior ir a

producto> carpeta de compilación limpia

Prensa "carpeta de compilación limpia" y esperar a que la construcción y explotación. Debería resolver cualquier error en el archivo de compilación.

Cuestiones relacionadas