ios - linker command failed with exit code 1 clang




Comando Linker non riuscito con il codice di uscita 1(utilizzare-v per vedere l'invocazione), Xcode 8, Swift 3 (16)

Assicurarsi che la casella di controllo Find Implicit Dependencies sia selezionata.

(Prodotto -> Schema -> Modifica schema -> Crea -> Trova dipendenze implicite)

Non riesco a liberarmi di questo errore!

Ho provato ogni sorta di cose come cancellare i dati derivati ​​(Preferenze-> Posizioni-> fai clic sulla freccia grigia per aprire la cartella Dati derivati ​​nel Finder-> fai clic con il pulsante destro del mouse, sposta nel cestino), pulendo il progetto (CMD + Maiusc + K o Prodotto -> Pulito), aggiornando cartagine e dipendenze, controllando le altre risposte su StackOverflow (principalmente regolazioni in Impostazioni / fasi di compilazione) e richiudendo l'app da github, ecc.

Lo stesso progetto funziona sui computer dei miei collaboratori ..

EDIT: Dall'attuale risposta più votata, sono stato in grado di eseguire il debug un po 'più lontano ... Non sono ancora sicuro di come risolvere. Sembra che io abbia qualcosa nel progetto due volte? Ho guardato e non riesco a trovare nulla che si presenti due volte!

Ecco una foto del registro:


Dovevo solo import Foundation !

Stavo usando Kitura per il lato server di Swift e continuavo a dimenticarlo!


Forse hai installato un file pod e stai ancora cercando di creare dal file .xcodeproj invece di .xcworkspace


Ho avuto gli stessi problemi durante la creazione di un progetto Ionic 1.

Sono stato in grado di risolvere il problema dopo aver eliminato il file CDVLogger.h & CDVLogger.m


Ho avuto lo stesso problema. Se stai controllando un progetto github, quindi invece di usare git clone, usa git lfs clone, poiché a volte alcuni file di grandi dimensioni non vengono clonati correttamente usando solo git. Inoltre, assicurati che il tuo bitcode sia disabilitato.


Ho avuto lo stesso problema.

La causa è che ho dichiarato la stessa variabile globale in 2 file . Quindi stava mostrando lo stesso errore dicendo 2 simboli duplicati .

La soluzione era rimuovere quelle variabili.


Molte soluzioni sono menzionate sopra. Nessuno ha funzionato per me (ma per favore prova prima sopra).

Seleziona progetto -> Seleziona destinazione -> Framework e librerie collegati -> Aggiungi tutte le librerie di pod. (rimuovi se esistono nei binari incorporati)

Ora rimuovili dalla cartella Framework nel file explorer sinistro di xcode.

Questo ha risolto il mio problema.


Nel mio caso ho cambiato il nome del Target nel mio Podfile quindi crea lo stesso errore per me.

Soluzione

Vai a project-> Build Phase->Link Binary with libraries Rimuovi il vecchio FrameWorks facendo clic sul minus button(-) E pulisci ed esegui di nuovo. Mi funziona.

Rimuovi .framework indesiderato.


Non ho avuto questo problema quando ho creato ed eseguito sul mio dispositivo. Ho avuto questo problema solo con i simulatori. Ho semplicemente riavviato il mio computer ed eseguito. Ha funzionato.


Ok, ho avuto lo stesso problema proprio oggi e ho iniziato a cercarlo su Google, quando mi sono imbattuto in questo thread. Non ho finito di leggere la domanda quando mi è venuta in mente la risposta: ho dichiarato una classe con un costruttore vuoto

class MyClass{
    MyClass();

    void func_one(){
    // code
    }

    void func_two(){
    // code
    }

    ~MyClass(){
        cout << "Deleting object" << endl;
     }
};

Poi ho pensato perché non terminare (non sono sicuro di aver corretto la selezione delle parole qui, ma chi se ne frega) del costruttore della mia classe con parentesi graffe ( {} ). Così ho fatto:

class MyClass{
    MyClass(){}

    void func_one(){
    // code
    }

    void func_two(){
    // code
    }

    ~MyClass(){
        cout << "Deleting object" << endl;
     }
};

Il problema è stato eliminato, il mio codice ha iniziato a funzionare perfettamente.

Lo so, la buona pratica è indagare sul problema e trovare la vera causa, ma questo ha funzionato per me.


Ora ho già risposto alla domanda. Ma se questo aiuta qualcuno a risparmiare un po 'di tempo: ho avuto lo stesso errore. Ho controllato tutto per trovare un errore molto piccolo e stupido dalla mia parte. Ho importato un file personalizzato ManagedObject di dati di base in un controller di visualizzazione del mio progetto. Ho importato accidentalmente il file .m invece del file .h che causava il simbolo duplicato nell'errore di architettura (comando linker non riuscito) perché il mio file .m della classe delle proprietà importa il file .h della classe di dati core e quindi causava un'importazione duplicata.

Quindi controlla solo se hai importato i file giusti prima di provare più soluzioni.!


Per chiunque abbia questo problema con il framework Flurry. Questo è ciò che ha risolto il mio problema. Per me il problema era che avevo importato i seguenti file ma non li avevo mai usati. "libFlurryTVOS_9.2.3" "libFlurryWatch_9.2.3"

Quindi tutto quello che dovevo fare era andare alle impostazioni di destinazione del progetto e rimuovere questi 2 file dalla sezione "Framework e librerie collegate" e il problema è stato risolto.


Seleziona il progetto-> Crea fase-> Collega binario con le librerie e aggiungi tutte le librerie di pod.


Stavo testando il framework Sparkle con CocoaPods.

Purtroppo, ho inserito "pod 'Sparkle', '~> 1.21'" nel PodFile nel posto sbagliato. L'ho messo sotto Test (per test unitari).

Una volta posizionato nel punto corretto in PodFile, va tutto bene.


l'unica cosa che ha funzionato per me è stato eseguire pod deintegrate pod install e pod install


stavo affrontando lo stesso problema oggi nella versione 8.3.2 di xcode 8

tasto destro del mouse sul problema -> rivela nel registro

allora sei in grado di verificare cosa sta causando quel problema







carthage