'ld: warning: directory non trovata per l'opzione'


524

Quando creo le mie app Xcode 4 ricevo questo avviso:

ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../../../Downloads/Google Analytics SDK/Library'
ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../Google Analytics SDK/Library'

Ma non ho Google Analytics nella mia app, ho cancellato tutto come posso rimuovere l'errore? E l'archiviazione di un'app mi dà l'errore:

clang: error: no such file or directory: 'armv6'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

Ho provato così tante cose ma sto ancora ricevendo questo errore quando provo a creare un file .IPA


10
Si noti che v'è un avvertimento molto simile, ma con -Fpiuttosto che -L: directory not found for option '-F/.... Vedi la risposta di @ macayer di seguito per la differenza.
pkamb,

1
Nota: assicurarsi che le directory con spazi siano quotate. ad es. $(PROJECT_DIR)/my folderdovrebbe essere "$ (PROJECT_DIR) / la mia cartella"
Jacksonkr,

Ho riscontrato questo problema quando la mia classe non aveva specificato l'appartenenza di destinazione corretta .
Tom Howard,

1
@Jackson Questo mi ha risolto. Ho ricevuto l'avviso -F e l'ho risolto citando le istruzioni fornite in "Percorsi di ricerca del framework" in Impostazioni build. Grazie
Marco

Il backup regolare è la migliore pratica.
Gajendra K Chauhan,

Risposte:


877

Devi fare questo:

  1. Fai clic sul tuo progetto (target)
  2. Fai clic su Impostazioni build
    • se l'errore include il -Lflag, quindi eliminare i valori nei Percorsi di ricerca della libreria
    • se l'errore include il -Fflag, quindi eliminare i valori nei percorsi di ricerca di Framework

E per quanto riguarda il secondo errore, scusami non posso aiutarti con quello. Spero che qualcun altro possa aiutarti.


5
Questo ha rotto il mio progetto, ma ho appena commentato i miei #import di Google Analytics ed eliminato l'SDK, chiuso xcode, aggiunto nuovamente e decommentato i miei #import e ha funzionato di nuovo :)
emotività

1
Ci sono dei passaggi che hai omesso? L'ho fatto e ora Xcode non riesce a trovare un mucchio di altri file che funzionavano pochi secondi prima. Aiuto!
utente

9
Fai attenzione a eliminare se in realtà hai bisogno di quel percorso di libreria. Verificare che esista il percorso specificato nell'errore. La posizione della libreria sul disco potrebbe essere stata spostata.
AWrightIV,

3
Dopo aver eliminato i percorsi di ricerca delle librerie ho ricevuto l'errore: ld: library not found for -lMoboSDK clang: error: linker command failed with exit code 1 (use -v to see invocation)(lMoboSDK è la mia libreria statica)
lee

2
Ho dovuto eliminare i percorsi in "Percorsi di ricerca del framework" sul mio TARGET "AppTest" per eliminare l'errore.
AT3D

754

Ci sono due errori che le persone sembrano confondere.

Se si tratta di un errore "directory non trovata per l'opzione ' -L / ...", significa che si tratta di un errore della libreria e dovresti provare a:

  • Fai clic sul tuo progetto (target)
  • Fai clic su Impostazioni build
  • In Percorsi di ricerca nella libreria , eliminare i percorsi

Se si tratta di una "directory non trovata per l'opzione ' -F / ...", significa che si tratta di un errore del framework e dovresti provare a:

  • Fai clic sul tuo progetto (target)
  • Fai clic su Impostazioni build
  • In Percorsi di ricerca framework , eliminare i percorsi

Ciò può accadere quando si sposta il file di riferimento.


3
Perché tutte le risposte non possono essere concise e utili come le tue? Grazie. Ho una domanda a margine: dove si impara sugli errori criptici -L / -F? Sono nuovo dell'intero gioco di collegamento / compilazione / costruzione e la documentazione integrata di Xcode non è esattamente qualcosa di cui scrivere. Suppongo che la maggior parte di queste cose sia accessibile dalla riga di comando. Ho ragione in questo assunto? Per me è stato difficile persino sapere da dove cominciare con tutte queste cose. Sono abituato allo sviluppo web, quindi, come puoi immaginare, trovare informazioni in quel regno è un po 'più facile.
Ben Stock,

su elimina i percorsi di ricerca mostra di nuovo FacebookSDK non trovato. È un errore -F. Sto usando Xcode 6.1
Rinku il

Ha funzionato per me. Ho dovuto eliminare i percorsi di ricerca del framework negli obiettivi sia per il progetto che per il modulo di test (dopo l'aggiornamento del progetto da iOS8.3 a iOS9).
ObjectiveTC

1
Dai Apple, cosa è successo a "funziona" ... questo dovrebbe valere anche per gli sviluppatori. Almeno ci offrono suggerimenti su come risolvere questo tipo di problemi anziché questi messaggi criptici. Kinda ricorda Microsoft, ew.
John Contarino,

2
Grazie mille per "-L è per i percorsi di ricerca nella libreria" e "-F è la linea guida per i percorsi di ricerca del framework" , ha funzionato perfettamente per me.
swiftBoy,

79

Il mio problema era che ho aperto l'originale .xcodeproj anziché lo spazio .xcworks che è stato generato da CocoaPods.


Accidenti, questo mi ha davvero salvato dopo 3 ore di battute sulla testa con la tastiera
Gregory Saldanha,

60

Ho dovuto rimuovere i riferimenti su:

  • Bersaglio
  • Crea impostazioni
  • Percorsi di ricerca del framework

inserisci qui la descrizione dell'immagine

Quindi la build è stata interrotta (prevista). Quindi ho rimosso il Framework (FB SDK), l'ho aggiunto di nuovo e voilà. Niente più errori o avvisi. :)


19

Uso i baccelli di cacao, quindi per me ho lasciato Xcode e sono corso

pod install

di nuovo e riaperto il progetto. Questo risolto tutto!


1
Non sono sicuro del motivo per cui sei stato sottoposto a downgrade quando il tuo suggerimento può effettivamente essere una soluzione a un problema simile! In particolare, è una soluzione se si verificano messaggi di errore simili dopo aver aggiunto una nuova configurazione di build al progetto. Poiché l'aggiunta di una nuova configurazione di build implica automaticamente la duplicazione di una configurazione esistente, è necessario eseguire pod installper regolare il valore della colonna "Basato sul file di configurazione".
Cellane,

1
Inoltre, i baccelli di cacao generano un'area di lavoro. assicurati di aprirlo, non il file di progetto. pod install + apri il file dell'area di lavoro risolto il mio problema.
Michael Krebs,

In ionico questo funziona per me quando ho eseguito l'installazione del pod all'interno della cartella Platform / iOS
Bas van Dijk,

18

Per me il problema era un carattere "\" di escape mancante.

I miei percorsi di ricerca sono stati suddivisi su più righe nei Percorsi di ricerca della libreria. Convenientemente, si stavano rompendo negli spazi sul mio cammino. L'aggiunta dell'uscita "\" l'ha risolto per me.

$(PROJECT_DIR)/My\ Project\ Name/My\ Directory

Questa è la risposta perfetta! Testato aprile 2014
Van Du Tran il

1
È patetico che questo sia ancora rotto in Xcode 6, febbraio 2015. Gli spazi nei percorsi non devono essere salvati manualmente.
StilesCrisis,

Le risposte accettate e più votate sopra non hanno funzionato per me, ma questo ha funzionato. Il mio suggerimento è che questo problema è che Xcode stava generando errori di 2-L, con ogni errore che era un frammento del percorso completo e si stava rompendo nello spazio. Concordato che nel 2015 non dovremmo preoccuparci di sfuggire agli spazi, che dovrebbero essere gestiti dietro le quinte per noi!
John Contarino,

Sì, questo è un problema di vecchia data in Xcode che si verifica quando il tuo percorso di ricerca viene aggiunto automaticamente dal sistema (cioè a causa del trascinamento di una libreria in "binari incorporati" - per qualche motivo non sfugge automaticamente agli spazi e successivamente interpreta come percorsi di file separati.
Ash,

13

Ho trovato il riferimento che ho dovuto rimuovere su:

  • Bersaglio
  • Crea impostazioni
  • Percorsi di ricerca dell'intestazione

33
Utilizzo di Google per trovare una soluzione per "ld: warning: directory non trovata per opzione", trovando la mia risposta come soluzione
Jasper,

13

Nel mio caso il problema erano i percorsi di ricerca del framework che avevano collegamenti incompleti, obsoleti, vecchi o più framework dello stesso tipo. Rimuovili e il tuo progetto verrà compilato senza alcun problema.

assicurati di fare Build -> clean

inserisci qui la descrizione dell'immagine


10

Ho riscontrato lo stesso problema (il primo) dopo un crash di Xcode e nessuna delle soluzioni proposte ha funzionato. Per sopprimere l'avviso che ho fatto:

• gestire schemi ...

• eliminato lo schema corrente

• Schemi di autocrate ora


Dovremmo avere l'autore di questa domanda originale pubblicare una nota per eseguire tutte queste soluzioni. Una lista. Prova la prima, la seconda soluzione successiva, la soluzione successiva ... perché è stato così per la mia migrazione di un progetto precedente e altre soluzioni sono soluzioni ragionevoli. Se non avessi provato tutto, non avrei trovato questo ... andai avanti e nuotavo confuso. Grazie Francesco!
Matthew Ferguson,

8

Questo è ciò che ha funzionato per me:

  1. Clicca su Progetto
  2. Fai clic su Impostazioni build
  3. Cerca "Percorsi di ricerca del framework"
  4. Cancella il percorso e digita "$ (ereditato)"

6

Sono stato anche colpito da quello che sembra essere lo stesso problema (questa volta in XCode 5.0.2). Nel mio caso, quello che è successo è stato XCode ha deciso di sfuggire alle virgolette già nelle "Impostazioni di costruzione". Quindi per esempio:

"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1"

divenne

\"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1\"

che ha causato il fallimento della compilazione ...

Una volta rimosse le fughe dalle virgolette, tutto ha funzionato di nuovo bene. Inoltre, probabilmente sarebbe meglio rimuovere le virgolette del tutto a meno che tu non ne abbia bisogno.


1
ENORME +1 per questo. Quelle fughe sull'errore "erano la causa dell'errore" directory non trovata "per entrambe le opzioni -L e -F.
Will

1
consiglio molto utile ... nel mio progetto xcode 5.0.2 virgolette sfuggite all'inizio, al centro e alla fine dei percorsi .... aveva anche duplicato i percorsi per alcuni framework in un modo strano ... rimossi gli escape, lascia solo "reale percorsi dei framework "per quelli che il progetto sta usando e si è sbarazzato degli avvertimenti ... è stato anche necessario rimuovere / aggiungere nuovamente i framework dopo aver corretto i percorsi
Marcos Reboucas

6

Se ciò accade dopo aver aggiunto un Podfile al tuo progetto ed eseguito l'installazione del pod, vai alla cartella del tuo progetto, vedrai un nuovo file che è stato creato "{ProjectName} .xcworkspace" - apri quel file in xcode

I pod che sono stati installati saranno correttamente collegati al progetto in questo file


Potrebbe essere che hai aperto il file di progetto anziché l'area di lavoro.
Jason,

3

Segui questa soluzione dettagliata:

  1. Clicca sul tuo progetto (target);
  2. Fai clic su Impostazioni build;
  3. In Percorsi di ricerca nella libreria, eliminare i percorsi;
  4. Aggiungi ./**su Percorsi di ricerca nella libreria.

3

Risposta supplementare

Tutte le risposte hanno detto di eliminare i percorsi di ricerca Framework o Library dalla destinazione. Ho avuto due problemi:

  • In primo luogo, stavo guardando il mio obiettivo principale del progetto piuttosto che l'obiettivo del test unitario.
  • In secondo luogo, non sono riuscito a capire come eliminare il percorso di ricerca del framework. Si è scoperto che stava semplicemente facendo clic su di esso per accedere alla modalità di modifica e quindi semplicemente per eliminare la stringa.

Voglio provare questo, ma sono preoccupato che rompa l'app. Sei sicuro che tutto abbia funzionato dopo averlo fatto?
Supertecnoboff,

@Supertecnoboff Se temi che non funzionerà, salva la stringa prima di eliminarla. Puoi sempre incollarlo nuovamente. La mia app era già rotta, quindi ho dovuto continuare a provare le cose fino a quando qualcosa ha funzionato. La mia risposta sopra è ciò che ha funzionato per me.
Suragch,

1

Per me il problema sembrava essere che non avevo incluso i framework appropriati (quando ho copiato i componenti aggiuntivi da un altro progetto non ho copiato anche i file dei framework)


1

La chiave per questo tipo di errore è accedere alle impostazioni di compilazione e esaminare ognuna delle sezioni dei percorsi di ricerca come Percorsi di ricerca delle librerie, Percorsi di ricerca del framework e possibilmente anche Percorsi di ricerca dell'intestazione e cancellare tutti i percorsi che non si applicano più l'app sta facendo fatica a cercare. Rimuovili e vai avanti, signore


1

vai a vedere quale framework manca, quindi vai a

=> Crea fasi => Collega binario con librerie

rimuovere la libreria e quindi aggiungere nuovamente


1

Ho avuto un problema simile che è scomparso quando ho creato un nuovo schema e l'ho usato per ricostruire ???


1

Per me ho anche abilitato i test. Anche il percorso di ricerca per i test è stato compilato in modo errato.

Cancella il percorso di ricerca del framework sia per il codice normale che per il codice di prova!


1

A causa delle directory personalizzate che sono entrate nei percorsi di ricerca (framework e libreria), il progetto ha la precedenza sulle directory dei pod. quindi non lo trova.

Per risolvere questo problema, eliminare tutte le directory personalizzate da

Percorsi di ricerca -> Percorsi libreria e percorsi framework,

vedi solo $ {ereditato}.

Spero che questo possa essere d'aiuto. Ha funzionato per me.


1

inserisci qui la descrizione dell'immagine

Aggiungi $ (ereditato) -Objc -lcrypto - lssl in Progetto -> Imposta build -> Percorso di ricerca -> Percorso di ricerca della libreria


La soluzione di cui sopra funziona bene per me, se non funziona per te, ti preghiamo di condividere lo screenshot.
Bandish Kumar,

1

Se ciò si verifica dopo un'installazione pod con alcune dipendenze, il problema potrebbe essere che stai utilizzando la versione precedente dell'app (.xcworkspace) su Xcode.

Dopo l'installazione del pod, questo è l'output che potresti vedere.

L'output di un'installazione pod.

Uscita di un'installazione pod

Fai esattamente questo, chiudi la finestra Xcode corrente e apri il nuovo spazio .xcworkspace.

Apertura del nuovo xcworkspace]

Apertura del nuovo xcworkspace


0

dovresti selezionare l'opzione per questo:

Crea impostazioni-> Percorsi di ricerca framework-> {inserisci il tuo percorso di progetto}


0

Ho esaminato tutti i [Percorsi di ricerca delle librerie - Percorsi di ricerca del framework - Percorsi di ricerca delle intestazioni]. ma non ci sono percorsi da rimuovere, quindi sono stato in grado di far sparire questo avviso andando nel bundle Xcode e creando una directory vuota nella posizione del percorso di cui si stava lamentando l'avviso.


0

Assicurati che solo 1 "libFlurry.a" sia selezionato nella destinazione

ha funzionato per me.

inserisci qui la descrizione dell'immagine


0

Non dimenticare di creare la stessa configurazione per il progetto Pod nell'area di lavoro, se passi alla nuova configurazione di MainApps.

Per esempio,

Nel mio caso, per risolvere questo problema ho dovuto creare la configurazione ReleaseOfficial anche per i progetti Pod quando ho creato la configurazione ReleaseOfficial per la mia MainApp.


0

Se hai installato un nuovo pod e hai riscontrato questo errore, esci da xcode> riapri> costruisci il progetto


0

Se la soluzione tipica non risolve il problema, ciò che l'ha risolto per me è stato garantire che tutte le versioni di iOS nel progetto xcode (ad es. IPHONEOS_DEPLOYMENT_TARGET) / target di distribuzione, podfile (se applicabile), ecc. Siano impostati sullo stesso numero di versione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.