Domanda

ho ottenuto questo errore quando si preme costruire + debug:

ld: duplicate symbol .objc_class_name_BlogTableItemCell in /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o and /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
È stato utile?

Soluzione

Sembra che si sta compilando la stessa classe BlogTableItemCell due volte in diversi luoghi del codice. Ciò può verificarsi nei seguenti casi.

  • Hai messo la stessa classe attuazione in due differenti File;

  • In realtà hanno solo uno implementazione di questa classe, tuttavia si sta anche collegando nel progetto un quadro o una libreria contenente una classe la cui nome è esattamente lo stesso del tuo.

Provate a trovare in tutto il progetto la classe e assicurarsi che solo una copia è disponibile all'interno del progetto.

Altri suggerimenti

Si potrebbe anche ottenere questo errore se si lascia che erroneamente di Xcode completamento automatico per le dichiarazioni #import specificano il' file di .m" per la '' classe invece del 'duplicato .h'.

Per quanto mi riguarda, che cambia 'Non ci sono blocchi comuni' da Sì a No (sotto destinazione delle richieste> Crea Impostazioni-> Mela LLVM - Generazione di codice) entrare descrizione dell'immagine qui

Ho avuto un problema simile a causa della scarsa definizione di const. Avevo definito un const nella mia intestazione:

int const kCropLocationTop = 1;

Questo è stato probabilmente importata più volte. Per risolvere ho cambiato l'intestazione DEF come segue:

extern int const kCropLocationTop;

e si è trasferito l'assegnazione del const al file .m:

int const kCropLocationTop = 1;

La speranza che aiuta chiunque sia ignorante di semplici concetti oggettivi c come lo sono io!

iPhone:? Errore Duplica simbolo da user576924

risposto correttamente per me. Tuttavia, per trovare il gremlin incriminato questo frammento ZSH.

grep "import.*\.m" **/*.[hm]

immediatamente dirvi dove il vostro errore.

Per errore il file sorgente è stato incluso due volte nel Progetto -> Crea Fase -> compilare i sorgenti. Rimozione di uno di essi risolto il problema.

Il motivo più comune di questo errore è l'importazione di un file xyz.m invece del file xyz.h. Controllare se i importazioni contengono qualcosa di simile   #import "----.m"

Giusto per aggiungere; Utilizzando Xcode per generare oggetti gestiti sottoclassi (Core Data) a volte può duplicare i file generati. Per me la correzione è stato quello di eliminare i file generati e rigenerati.

Ho appena incontrato questo problema me stesso. Per l'elenco, ecco un'altra possibilità:

duplicato linea di collegamento nel file di progetto.

ho causato questo conflitto che si fondono su un aggiornamento SVN, quando ho accidentalmente duplicato una riga.

E 'successo anche a me. Nel mio caso, un (uno solo) dei dati principali generate automaticamente classi stato inserito due volte. Ho notato la duplicazione, cercando in fasi di creazione ... Fonti di compilazione. Semplicemente eliminando una delle ricorrenze risolto il problema.

L'aggiunta di un altro possibile causa alla lista ... si può avere mistakingly creati più costanti nel file di implementazione, ma al di fuori della realizzazione, con lo stesso nome.

In HeaderFileOne.m

NSString * const kCoolConstant = @"cool";

In HeaderFileTwo.m

NSString * const kCoolConstant = @"cool";

Quindi, cambiare uno di quei nomi omogenei sarebbe correggere l'errore di compilazione.

Ho anche affrontato a questo problema. La mia soluzione era rinominare una delle variabili globali, che ha lo stesso nome di uno in altra classe. Spero che questo aiuti

Questo può aiutare qualcuno

ho ottenuto questo errore perché ho duplicare un ViewController e poi rinominato. Così, quando compilo ho ottenuto questo errore. Il motivo era in entrambi i controller di vista c'era una variabile "float" con lo stesso nome cioè "float padding = 10,0" che avevo definito sul livello di classe. Rinominare il nome della variabile di cui sopra in uno dei controller di vista risolto il mio problema.

La stessa cosa è successa a me mentre stavo giocando con i file XI ter localizzabili, accidentalmente ho creato due file di implementazione e appereantly che ha causato il problema nel mio caso. Dopo aver eliminato / ricreare il file di implementazione senza fare lo stesso errore, l'errore è stato risolto.

Uno dei nostri sviluppatori lasciato i file di progetto "libSoomla *" in due volte. Ho rimosso i file duplicati soomla, ricostruito, e che riparato!

Speranza che aiuta.

Nel caso, ho seguito alcune istruzioni per costruire una nuova versione di Subversion che mi ha indirizzato a creare questo link simbolico:

ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

Ora sono davvero un ragazzo di Windows quindi non era immediatamente evidente per me - ma rimuovendo il collegamento fisso per me (dopo il riavvio XCode):

rm /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

Uff.

(l'errore effettivo ho ottenuto è stato quello descritto qui: costruiscono errore simboli duplicati arclite.o )

Assicurarsi che non hai importato .m File. Per me questo accada ho aggiunto #import "SchoolCommuterHome.m" al posto di # import "SchoolCommuterHome.h"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top