xcode - tools - Símbolos indefinidos para arquitectura i386
xcode requerimientos (4)
A riesgo de parecer obvio, siempre verifique la ortografía de sus archivos de clase de reenvío. A veces, XCode (al menos XCode 4.3.2) cambiará a verde una declaración que, en realidad, tiene un revestimiento de camello incorrecto. Como en este ejemplo:
"_OBJC_CLASS_$_RadioKit", referenced from:
objc-class-ref in RadioPlayerViewController.o
Si RadioKit era un archivo de clase y usted lo convierte en propiedad de otro archivo, en la declaración de interfaz, podría ver que
Radiokit *rk;
tiene "Radiokit" en verde cuando la real denuncia debe ser:
RadioKit *rk;
Este error también arrojará este tipo de error. Otro ejemplo (en mi caso), es cuando tiene las extensiones _iPhone y _iphone en los nombres de sus clases para aplicaciones universales. Una vez que cambié el archivo apropiado de _iphone al _iPhone correcto, los errores desaparecieron.
Posible duplicado:
símbolo (s) no encontrado (s) para arquitectura i386
Tengo una aplicación que completar, y cuando comienzo a tratar de entender lo que hizo el desarrollador anterior (creo que fue con Xcode 3, creo) ejecutando el simulador, Xcode 4 me muestra 25 problemas:
Ld build/Debug-iphonesimulator/RadioPlayer.app/RadioPlayer normal i386
cd /Users/haithembenhammouda/Desktop/SonVidéo
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/haithembenhammouda/Desktop/SonVidéo/build/Debug-iphonesimulator -L/Users/haithembenhammouda/Desktop/SonVidéo/Classes/RadioKitLib -L/Users/haithembenhammouda/Desktop/SonVidéo -F/Users/haithembenhammouda/Desktop/SonVidéo/build/Debug-iphonesimulator -filelist /Users/haithembenhammouda/Desktop/SonVidéo/build/SonVidéo.build/Debug-iphonesimulator/RadioPlayer.build/Objects-normal/i386/RadioPlayer.LinkFileList -mmacosx-version-min=10.6 -ObjC -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework CoreGraphics -framework SystemConfiguration -framework MediaPlayer -framework CFNetwork -framework AudioToolbox -framework QuartzCore -lsqlite3.0 -framework AVFoundation -lRadioKit -framework MessageUI -o /Users/haithembenhammouda/Desktop/SonVidéo/build/Debug-iphonesimulator/RadioPlayer.app/RadioPlayer
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_RadioKit", referenced from:
objc-class-ref in RadioPlayerViewController.o
".objc_class_name_UIColor", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(BufferView.o)
".objc_class_name_UIView", referenced from:
.objc_class_name_BufferView in libRadioKit.a(BufferView.o)
".objc_class_name_NSObject", referenced from:
.objc_class_name_ASE_Event in libRadioKit.a(ASE_Event.o)
.objc_class_name_AudioStreamEngine in libRadioKit.a(AudioStreamEngine.o)
.objc_class_name_RadioKit in libRadioKit.a(RadioKit.o)
.objc_class_name_XMLMetaParser in libRadioKit.a(XMLMetaParser.o)
".objc_class_name_NSDate", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
".objc_class_name_NSValue", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
".objc_class_name_NSScanner", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
".objc_class_name_NSCharacterSet", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
".objc_class_name_NSAutoreleasePool", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
pointer-to-literal-objc-class-name in libRadioKit.a(XMLMetaParser.o)
pointer-to-literal-objc-class-name in libRadioKit.a(reachability.o)
".objc_class_name_NSFileManager", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
".objc_class_name_NSURLConnection", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
pointer-to-literal-objc-class-name in libRadioKit.a(XMLMetaParser.o)
".objc_class_name_NSThread", referenced from:
pointer-to-literal-objc-class-name in libRadioKit.a(AudioStreamEngine.o)
.....(etc)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
PD: He comprobado los marcos y todos ellos existen.
Agregue el marco requerido para el método utilizado en el objetivo del proyecto en la lista "Vincular binarios con bibliotecas" de las fases de compilación, funcionará fácilmente. Como he importado a mi proyecto.
QuartzCore.framework
Por el bicho
Símbolos indefinidos para la arquitectura i386:
Bueno, encontré una solución a este problema para quienes quieren trabajar con xCode 4. Todo lo que tienes que hacer es importar marcos de la carpeta SimulatorSDK /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System / Biblioteca / Marcos
No sé si funciona cuando intentas probar tu aplicación en un iDevice real, pero estoy seguro de que funciona en el simulador.
DISFRUTAR
Un poco tarde para la fiesta, pero podría ser valioso para alguien con este error ...
Acabo de copiar directamente un montón de archivos en un proyecto de Xcode. Si olvida agregarlos a sus proyectos. Fases de compilación obtendrá el error "Símbolos no definidos para la arquitectura i386". Así que agregue sus archivos de implementación a los orígenes de compilación, y los archivos Xib para copiar los recursos del paquete.
El error me decía que no había un enlace a mis clases simplemente porque no estaban incluidas en las fuentes de compilación, lo que es bastante obvio, pero puede ahorrarle a alguien un dolor de cabeza.