2012-07-30 12 views
11
ld: duplicate symbol _velocityX in \ 
/Users/Student/Library/Developer/Xcode/DerivedData/finalproject-ffzevekmatxvhrgisgeleoijyllr/Build/Intermediates/finalproject.build/Debug-iphonesimulator/finalproject.build/Objects-normal/i386/Level2ViewController.o \ 
and \ 
/Users/Student/Library/Developer/Xcode/DerivedData/finalproject-ffzevekmatxvhrgisgeleoijyllr/Build/Intermediates/finalproject.build/Debug-iphonesimulator/finalproject.build/Objects-normal/i386/Level1ViewController.o \ 
for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

UPDATE: Dodano \ + nowe linie dla czytelnościLinker Polecenie nie powiodło się z kodem wyjścia 1: powielić symbol

nie mam pojęcia co jest nie tak z moim projekcie, może ktoś pomóc?

+1

Well : linker skarży się, że symbol "_velocityX" jest zdefiniowany w dwóch obiektach: ".../Objects-normal/i386/Level2ViewController.o" i ".../Objects-normal/i386/Level1ViewController. o "Może dwukrotnie podałeś obiekt w wywołaniu linkera? Lub załączyłeś plik .C? Lub masz pływające wokół nieświeże obiekty? – wildplasser

Odpowiedz

1

Prawdopodobnie masz double _velocityX w pliku nagłówkowym zawarte zarówno Level1ViewController.c i Level2ViewController.c, gdy nagłówek powinien mieć extern double _velocityX i dokładnie jeden z .c plików powinny mieć double _velocityX. (Zakładając, że typ _velocityX jest double, co wydawało się uzasadnione, a także zakładając, że jest to C lub C++, a nie Fortran lub coś takiego).

22

Miałem ten sam problem. Ale to była moja wina. :). Możesz napisać #import file.m zamiast #import file.h. Więc zasoby kompilacji powieli plik symbol.o. - To wszystko! ^^ Aby go zobaczyć, usuniesz ten plik błędu, skompiluj -> Pokaż wiersz błędu -> a następnie zrekopiuj go.

+1

haha ​​... jak głupio :) dzięki za to. nigdy nie zauważyłbym tej literówki. – d2burke

+1

@bao go przybiłeś! –

+1

To też był mój problem. Wielkie dzięki. – Ali

1

Wpadłem na ten sam błąd, próbując zintegrować kilka frameworków z moją aplikacją.

Najpierw użyłem Sparrow - biblioteki graficznej i domyślnie miałem plik main.m, wszystko było w porządku, dopóki nie spróbowałem zintegrować Parse, które również zależało od FacebookSDK. W folderach FacebookSDK znajduje się przykładowa aplikacja o nazwie Scrumptious z main.m, która była źródłem moich problemów. Usunąłem przykładowy katalog aplikacji i wszystko w porządku.

2

Miałem ten sam błąd, ponieważ zdefiniowałem stałą o tej samej nazwie w dwóch osobnych plikach .m. Kiedy zmieniłem nazwę w jednym z nich, zostało skompilowane.

Na przykład w moim ViewController.m miałem:

#import "ViewController.h" 
const int IPHONE4 = 480; 

iw moim Menu.m:

#import "Menu.h" 
const int IPHONE4 = 480; 

zmieniłem Menu.m do:

#import "Menu.h" 
const int IPHONE4H = 480; 
Powiązane problemy