Domanda

Ho usato Clint Harris' esercitazione da configurare code sharing tra i progetti, e tutto funziona proprio come previsto sul mio computer. Ma sulla macchina del mio collega, sembra che il compilatore non trova il file di intestazione dal progetto libreria statica quando costruisce.

Il mio collega ha ottenuto il mio progetto di clonazione di un repository git. Siamo passati attraverso tutte le bandiere di compilazione importanti e le impostazioni di XCode n volte, ma il progetto si rifiuta semplicemente di compilare sulla sua macchina.

Questo è quello che ho chiesto al mio collega di lavoro da fare, in gran parte copiato e incollato dal tutorial:

  1. Assicurati che ci sia spazio NO vuoto nel percorso completo elenco dei progetti.
  2. All'interno della directory progetti, creare un'altra cartella chiamata "build_output".
  3. In XCode, in “XCode> Preferenze 'scegliere la scheda' Building” e impostare ‘Posto costruire progetti in’ a ‘posizione Personalizzato’ e specificare il percorso della directory di compilazione comune si è creato.
  4. Set “luogo intermedio creare i file in” a “Con i prodotti costruire”.
  5. Scegliere la scheda “Sorgente Trees” e creare una nuova variabile albero di origine facendo clic sul pulsante “+” e compilando le colonne. In entrambi "Impostazione Nome" e "Display Name", messo [Il nome del progetto condiviso che ha creato la libreria statica]. Nel percorso, si inserisce il percorso completo della cartella quadro.

A seguito di questi passaggi, il progetto che utilizza la libreria statica dovrebbe compilare lo stesso sulla sua macchina come sulla mia. Ma non è così. In sostanza, l'errore che ottiene è:

error: TheFrameworkHeader.h: No such file or directory

e poi una serie di altri errori causati dal collegamento interno mancante.

Alcune strategie per la risoluzione dei problemi questo? O chi ha avuto un'esperienza simile e potrebbe condividere alcune conoscenze sudati? Manca qualcosa dalle istruzioni che ho sintetizzato? Ho bisogno di impostare i ruoli di intestazioni nelle intestazioni Copia costruire fase durante la compilazione di una libreria statica?

È stato utile?

Soluzione

Nonostante alcuni consigli utili, non ho mai capito questo fuori, ma ecco un po 'di informazioni per tutti coloro che in una situazione simile. Ho creato la biblioteca ed il progetto dipendente suddividendo un progetto originale in due. In un primo momento, la biblioteca e l'applicazione sono stati solo due bersagli all'interno dello stesso progetto. Più tardi, mi sono trasferito l'applicazione per un progetto separato. Tutto sembrava funzionare, e ho spinto entrambi i progetti di repository git remote. Quando questi sono stati clonati in altri computer, tuttavia, le intestazioni di libreria non sono stati trovati.

In seguito, scopro che lo stesso errore si è verificato quando ho clonato i progetti sul computer originale. Dopo un sacco di lotta, ho appuntato verso il basso per un dettaglio inquietante: il nome della cartella del progetto dipendente (. Cioè, il progetto con l'applicazione, non la libreria) Non il nome del pacchetto .xcodeproject, non l'identificativo dell'applicazione, ma il nome del cartella contenente . Appena ho cambiare la situazione, tutto funziona. Se cambio indietro al nome originale (da qualsiasi computer), ancora una volta le intestazioni non si trovano.

Se qualcuno ha qualche intuizione su questo, si prega di inviare una risposta!

EDIT: Da quando ho postato questo, lo stesso problema si è verificato con un altro progetto, e di nuovo, semplicemente rinominare la cartella che contiene la cartella .xcodeproject risolto il problema

.

Altri suggerimenti

Non credo sia Git, penso che sia Xcode. Ho un problema molto simile qui, dove Xcode / xcodebuild risolve un percorso di inclusione falsamente (che rende un semplice.) Con i esattamente gli stessi file di progetto biblioteca e xcconfig (checkout pulito da svn repo), ma un'altra cartella contenente - funziona. Così, grazie per la soluzione e non biasimo più Git; -)

spesso mi dimentico di controllare questo: sei sicuro che il file mancante (vale a dire, TheFrameWorkHeader.h" è nel repository git Può ben essere che le tue impostazioni di generazione sono corrette, ma il file in qualche modo non ha ottenuto aggiunto a? git correttamente.

In caso di edificio problemi su una macchina particolare, allora il problema probabilmente è una regolazione della macchina o utente. Come un ambiente variabile (forse INCLUDE_PATH o uno dei suoi parenti - XCode utilizza GCC). Si può avere un "" in una di queste variabili.

Il modo migliore per risolvere questo problema sarebbe quello di aggiungere il percorso della cartella necessaria per l'opzione -I nello script di build.

Doppio controllo che la "ricerca Paths-> User Header percorsi di ricerca" Build impostazione (per tutte le configurazioni) punta alla directory che contiene il progetto Xcode condiviso (è possibile utilizzare la nuova variabile dell'albero di origine è stato creato).

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