how - what is a header c++




Strumento per tracciare le dipendenze#include (8)

Qualche buon suggerimento? L'input sarà il nome di un file di intestazione e l'output dovrebbe essere un elenco (preferibilmente un albero) di tutti i file, incluso direttamente o indirettamente.



Basandosi sulla risposta di KeithB , ecco la sintassi GNUmake per automaticamente 1) generare i file di dipendenza, 2) tenerli aggiornati e 3) usarli nel tuo makefile:

.dep:
    mkdir [email protected]
.dep/%.dep: %.c .dep
    (echo [email protected] \\; $(CC) $(IFLAGS) -MM $<) > [email protected] || (rm [email protected]; false)
.dep/%.dep: %.cpp .dep
    (echo [email protected] \\; $(CXX) $(IFLAGS) -MM $<) > [email protected] || (rm [email protected]; false)
DEPEND := $(patsubst %.dep,.dep/%.dep,$(OBJ:.o=.dep))
-include $(DEPEND)

(Assicurati di cambiare quei rientri nei dattilografi.)


Grazie a KeithB. Ho cercato i documenti per cl.exe (VS2008) e ho trovato il flag / showInclude. Dall'IDE, questo può essere impostato dalla pagina delle proprietà di qualsiasi file CPP.


Ho giocato con uno strumento chiamato cinclude2dot . È stato piuttosto utile per gestire un codebase piuttosto ampio quando sono arrivato a lavorare qui. Alla fine ho pensato di integrarlo nella nostra build quotidiana.


Per una soluzione pesante, dovresti dare un'occhiata a Doxygen . Esamina il tuo codice base e trova un sito web, efficacemente, che documenti il ​​tuo codice. Una delle tante cose che mostra è includere alberi.

Se stavi cercando di essere in grado di collegare l'output di questo strumento in qualche altro processo, allora questo potrebbe non funzionare per te (anche se Doxygen emette in altri formati, non ho molta familiarità con quella funzione). Se vuoi semplicemente guardare le dipendenze, però, dovrebbe funzionare alla grande.



cscope ( http://cscope.sourceforge.net/ ) lo fa in un xterm standalone, e può anche essere usato all'interno del tuo editor preferito - ha grandi emacs e supporto vi / vim.


Capire per C ++ dovrebbe essere in grado di aiutarti: costruisce un database a cui puoi accedere da Perl.





header