Domanda Comando linker non riuscito con codice di uscita 1: simbolo duplicato


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)

AGGIORNAMENTO: aggiunto \ + newline per la leggibilità

Non ho idea di cosa c'è di sbagliato nel mio progetto, qualcuno può aiutarti?


11
2017-07-30 18:32


origine


risposte:


Ho avuto lo stesso problema. Ma è stata colpa mia. :). Potresti aver scritto a #import file.m invece di #import file.h. Quindi Compiles Resource duplica il file symbol.o. - Questo è tutto! ^^ Per vederlo, rimuovi quel file di errore, crea -> Mostra riga errore -> quindi ricopia.


23
2017-12-14 03:24



Ho avuto lo stesso errore, perché ho definito una costante con lo stesso nome in due file .m separati. Una volta che ho cambiato il nome in uno di questi, è stato compilato.

Ad esempio nel mio ViewController.m ho avuto:

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

e nel mio Menu.m:

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

Ho cambiato il mio Menu.m in:

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

3
2018-02-27 05:28



Probabilmente lo hai double _velocityX in un file di intestazione incluso da entrambi Level1ViewController.c e Level2ViewController.c, quando l'intestazione dovrebbe avere extern double _velocityX, e esattamente uno del .c i file dovrebbero avere double _velocityX. (Supponendo che il tipo di _velocityX è double, che sembrava ragionevole, e anche assumendo che questo sia C o C ++ e non Fortran o qualcosa del genere).


2
2017-07-30 18:58



Mi sono imbattuto in questo stesso errore durante il tentativo di integrare alcuni framework nella mia app.

Per prima cosa usavo Sparrow - una libreria grafica, e di default avevo un file main.m, le cose andavano bene fino a quando ho provato ad integrare Parse che dipendeva anche da FacebookSDK. All'interno delle cartelle di FacebookSDK c'è un'app di esempio chiamata Scrumptious con un main.m che era la fonte dei miei problemi. Ho rimosso la directory delle app di esempio e tutto ha funzionato correttamente.


2
2017-12-16 05:09