Domanda

Ho un progetto molto grande con un sacco di file di intestazione contorti che tutti comprendono l'un l'altro. C'è anche un massiccio numero di librerie di terze parti che dipende. Sto cercando di raddrizzare il disordine, ma sto avendo qualche problema, dal momento che un sacco di tempo mi tolgo una direttiva # include solo per scoprire che il materiale è stato compreso è ancora incluso attraverso uno degli altri file . C'è qualche strumento che può aiutare a capire questo? Mi piacerebbe davvero essere in grado di fare clic su un file .he chiedergli quali file CPP è incluso in (direttamente o indirettamente), e i percorsi attraverso i quali è incluso, e allo stesso modo fare clic su un file cpp e chiedere esso che. file h incluse (direttamente e indirettamente). Non ho mai sentito parlare di uno strumento che fa questo, e un po 'di googling rapida non ha girato nulla, ma forse non so cosa cercare.

È stato utile?

Altri suggerimenti

Per VS2003 c'è / showIncludes bandiera (in C / C ++ / Proprietà avanzate). Questo stamperà tutte le intestazioni di ogni file cpp include e quello che comprendono, in modo da poter passare da lì.

Sono sicuro che ci sia stessa opzione in stesso posto per VS2008.

se si utilizzano i compilatori GCC, provate questo

g++ -M abc.cpp

mostrerà tutte comprendono le dipendenze per il file abc.cpp

La vostra situazione mi ricorda la mia. Ho un sacco di intestazioni che ho creato che uso come una libreria, invece di preoccuparsi con una DLL.

Naturalmente il ciclico-include può diventare fastidioso, così ho trovato che uno strumento come visivo Assist X (1) aiuta con questo genere di cose. Ha una funzione che può trovare i riferimenti a cose, in modo che si può facilmente estirpare in cui viene definito qualcosa / dichiarata / incluso ecc Ha anche un sacco di altre funzioni utili, quindi ritengo che sia molto utile.

Ci sono probabilmente altri strumenti / plugins che hanno una funzione di riferimento, ma di solito come una caratteristica tra le altre funzioni di refactoring e di produttività del programma di utilità.

HTH

E 'piuttosto noioso, ma è possibile binario cercare il vostro modo per cui un #include avviene utilizzando #error (e il messaggio #pragma) per restringere che includono la linea sta tirando nella terza parte. Ho fatto questo nel caso di un singolo file che stavo cercando di rintracciare, ma suona come il vostro problema è così grande, probabilmente uno degli strumenti di altri hanno detto sarebbe più efficace.

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