Domanda

Ho appena creato un progetto "C ++ standard dinamico" libreria con Xcode e compilato utilizzando LLVM 2.0. Ho notato che il file PCH contiene la #include <iostream> linea, ma il file Test.cp include anche questa affermazione #include <iostream>.

La cosa strana è che, eliminando la dichiarazione in Test.cp , la generazione non riesce con il Semantic Issue – Use of undeclared identifier 'std' errore nonostante il fatto che questa affermazione è anche incluso nel PCH.

Perché non funziona il PCH? C'è un'impostazione che mi manca? Non ho mai fatto nulla con loro prima (in quanto sempre e solo di lavoro) quindi non sono sicuro di quello che è la causa di non lavoro, anche con un progetto nuovo di zecca.

È stato utile?

Soluzione

intestazioni precompilate sono utilizzati per accelerare la compilazione. Essi non hanno alcun altro effetto, in particolare, si devono ancora comprendere le intestazioni in cui ne avete bisogno.

Modifica - In Xcode file PCH è davvero un prefisso intestazione che sembra essere precompilati (con la configurazione di progetto predefinito). Controllare le impostazioni di generazione GCC_PRECOMPILE_PREFIX_HEADER e GCC_PREFIX_HEADER.

Altri suggerimenti

Elimina i dati derivati ??(scheda Finestra-Organizer, progetti, selezionare il progetto) per avere XCode ricostruire l'indice per PCH di. Inoltre, se si utilizza unit test, c'è un PCH separato per il target Unittests. Assicurarsi che questo include anche le importazioni necessarie.

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