2011-07-07 22 views
23

Powiel możliwe:
symbol(s) not found for architecture i386niezdefiniowane symbole dla architektury i386

Mam app do zrealizowania, a kiedy zacznę próbując zrozumieć, co poprzedni deweloper zrobił (to było zrobione z Xcode 3 myślę) przez wykonanie symulatora, Xcode 4 pokazuje mi 25 numerów:

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 

P S: Sprawdziłem frameworki i wszystkie one istnieją.

+1

Czy ten wpis jest pomocny? http://stackoverflow.com/questions/4839981/symbols-not-found-for-architecture-i386 –

+0

dzięki @JamesMcCormack, ten post pomógł mi rozwiązać mój problem :) – CherryQu

Odpowiedz

-5

dobrze znalazłem rozwiązanie tego problemu dla chcących pracować z Xcode 4. Wszelkie co trzeba zrobić, to importowanie ramy z folderu SimulatorSDK /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4 .3.sdk/System/Library/Frameworks

Nie wiem, czy to działa, gdy próbujesz przetestować aplikację na prawdziwym urządzeniu iDevice, ale jestem pewien, że działa na symulatorze.

ENJOY

+0

Gdzie jest ten folder? –

+4

Co to jest ...? To nigdy nie zadziała. –

21

Dodaj ramy wymagane do metody stosowanej w celu projektu w „Binaries powiązanie z bibliotek” liście etapów budować, to będzie działać łatwo. jak mam importowane do mojego projektu

QuartzCore.framework 

Dla bug

niezdefiniowane symbole dla architektury i386:

2

Na ryzyko brzmiący oczywiste, zawsze sprawdzić pisownię z przodu pliki klas. Czasami XCode (przynajmniej XCode 4.3.2) zmieni kolor na zielony, który jest nieprawidłowo wielbłądowy. Jak w poniższym przykładzie:

"_OBJC_CLASS_$_RadioKit", referenced from: 
    objc-class-ref in RadioPlayerViewController.o 

Jeśli RadioKit był plik klasy i stała się ona własnością innego pliku, w deklaracji interfejsu, możesz zobaczyć, że

Radiokit *rk; 

ma „Radiokit” na zielono kiedy faktyczna dekalaracja powinna być:

RadioKit *rk; 

Ten błąd spowoduje również zgłoszenie tego typu błędu. Innym przykładem (w moim przypadku) jest dodanie rozszerzeń _iPhone i _iphone do nazw klas dla aplikacji uniwersalnych. Po zmianie odpowiedniego pliku z _iphone na prawidłowy _iPhone, błędy zniknęły.

24

Trochę późno na imprezę, ale może być cenne dla kogoś z tego błędu ..

Właśnie prosto kopiowane kilka plików do projektu Xcode, jeśli zapomnisz, aby dodać je do swoich projektów Budowanie Fazy ty otrzyma błąd "Niezdefiniowane symbole dla architektury i386". Dodaj pliki implementacji do Źródeł kompilacji, a pliki Xib, aby skopiować zasoby pakietu.

Błąd informował mnie, że nie ma linku do moich klas tylko dlatego, że nie zostały one uwzględnione w źródłach kompilacji, całkiem oczywiste, ale mogą uratować komuś ból głowy.

+5

Co zrobić, jeśli nie mam pliku .m, mam tylko plik .a! – GMsoF

+0

dzięki bardzo dobrej rady. –

+0

Niesamowite ... Utknąłem w błędzie Apple Mach Link przez 2 dni. Mannn .. właśnie mnie uratowałeś :-) Dzięki –

Powiązane problemy