2013-10-07 19 views
13

Alcuni dei miei file di intestazione non hanno include, in modo da ricevere questo messaggio in Visual Studio 2010:Come interrompere un avviso PCH IntelliSense?

IntelliSense: PCH warning: cannot find a suitable header stop location. An intellisense PCH file was not generated. 

Se posso aggiungere un singolo colpo di testa, per esempio:

#include <iostream> 

Scompare. Come posso evitare che questo errore venga visualizzato senza aggiungere (potenzialmente inutilizzato) include>

risposta

9

Quando si aggiunge un file .cpp, esso eredita le impostazioni PCH del progetto. spiegazione più dettagliata del problema here

Solutions:

  1. Aggiungere #pragma once all'inizio del file.

Esso provocherà il file sorgente da includere solo una volta in una sola compilazione, quindi il compilatore sarà soddisfatto e non richiederanno ulteriore #include

  1. Impostazione progetto per non utilizzare intestazioni precompilate
  2. Disabilitare l'utilizzo di PCH per quel file cpp che è stato aggiunto, che cancellerà sia IntelliSense che il warning/errore del compilatore.

Nota! Includo i numeri 2 e 3 perché alcuni dicono che ha aiutato, ma solo num 1 ha risolto il mio caso.

+0

Io ... non ricordo nemmeno da quale progetto provenga questo errore. Aprirò tutti in VS2010 finché non avrò ricevuto questo errore e potrò provare "#pragma once". – NobleUplift

+0

Mi ci sono voluti solo sei mesi, ma alla fine ho accettato la tua risposta! : D – NobleUplift

+1

puoi spiegare la direttiva #pragma?! perché risolve il problema? –

4

Suppongo che il problema è che avete intestazione precompilata nel progetto (per default "stdafx.h") e per risolvere correttamente il problema si dovrebbe aggiungere

#include "stdafx.h" 

all'inizio del file di intestazione/source .

Commento se sbaglio, perché è la mia prima risposta e l'inglese non è la mia lingua madre.

+0

Bene, penso che avrebbe dovuto risolvere il suo problema più di 3 anni fa ora. ;) – Eiko

+0

Ho scritto questo per gli altri utenti che riscontrano questo problema per sapere perché si verifica questo problema. F.E. Ho avuto lo stesso problema, ho visitato questa domanda, ho visto un anser che risolve il problema, ma non sapevo perché lo fa, così ho pensato e scritto un'altra risposta che ha anche un problema e spiega come lo risolve. – Serid