XCode precompilazione pch due volte; la seconda volta con il linguaggio sbagliato
-
28-09-2019 - |
Domanda
Ho un progetto di Objective C in XCode. Quando si costruisce, XCode precompiles mio file PCH prefisso due volte. La prima volta, utilizza il -x objective-c-header
argomenti, e funziona bene. La seconda volta, utilizza -x c-header
, e non riesce (a causa del file che contiene il codice Objective C).
ho un altro progetto che è impostato lo stesso, ma si costruisce bene. (PCH è precompilato solo una volta, con Objective C.) Ho confrontato le impostazioni di generazione per i due progetti di side-by-side, e nulla differivano rilevante. Ho confrontato le impostazioni di generazione per il lato-by-side obiettivi, e ancora una volta, senza differenze rilevanti.
Ho provato a pulire tutti gli obiettivi e la ricostruzione, ma senza fortuna. Ho provato a riavviare XCode, ma senza fortuna. Ho grepped mia cartella del progetto per c-header
, ma ha mostrato solo fino nei registri di generazione.
Quale potrebbe essere la causa?
Soluzione 2
Odio rispondere alla mia domanda, ma ho capito. Ho disabilitato precompilazione l'intestazione prefisso per vedere se che mi permetteva di continuare a lavorare. La build ancora non è riuscito con lo stesso errore, ma non è riuscito quando si include il file da un file .c ho dimenticato che avevo in progetto. A quanto pare, l'esistenza di questo file .c è la differenza tra questo progetto e l'altro. Ora che so cosa sta succedendo, ho spostato il mio codice all'interno del #ifdef __OBJC__
, e tutto sembra bene.
Altri suggerimenti
Il file PCH è stato ricostruito più volte perché non c'è più lingue nel progetto; una volta con l'obiettivo-c compilatore e una volta con il file C rettilineo, in tal modo che si doveva Objective-C codice esterno della objc #ifdef e che ha causato il compilatore C dritto al hoark su esso di pranzo.
Se si ha un file C ++, si sarebbe probabilmente finire con 3 compilation PCH (IIRC - stato un po 'che non muck con quella).