Come posso trovare intestazioni duplicate in una soluzione di grandi dimensioni in MSVC ++ 2005 o 2008?

StackOverflow https://stackoverflow.com/questions/411142

Domanda

In Visual Studio (C ++), c'è un modo per trovare facilmente intestazioni duplicate che sono definite nei file .cpp?

Sto anche cercando di trovare modi per rilevare questa situazione:

  • A include B include C
  • A include C
  • = > A non è necessario includere C
È stato utile?

Soluzione

Se si desidera rilevare questa situazione, è possibile aggiungere questa macro all'inizio di ogni file. Sostituisci A con il nome del file

#if A_H
#error "Duplicate include"
#else
#define A_H
#endif

Altri suggerimenti

In genere, li contrassegni con #pragma una volta o con l'equivalente macro-guardia e smetti di preoccupartene.

Se si utilizza il compilatore MS, è possibile inserire un messaggio #pragma (IIRC, potrebbe essere invece un avviso #pragma o errore #pragma) con il nome del file di intestazione nella parte superiore di ogni file di intestazione e l'output di compilazione mostrerà l'elenco di tutti quelli inclusi per ciascun file compilato.

Funzionerebbe meglio per i file di intestazione, poiché quelli di sistema non saranno inclusi.

Se vuoi vedere tutte le intestazioni incluse, modifica le opzioni di compilazione per includere / P (preelaborare un file) che non compilerà il tuo codice, ma invece reindirizzerà il pre-elaboratore su un file, puoi quindi scorrere attraverso di esso per vedere le istruzioni #include. Ricorda che questi file saranno di grandi dimensioni.

PC-Lint (e probabilmente altri strumenti per lanugine) possono indicare file di inclusione non utilizzati.

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