Domanda

Qualche buon suggerimento?Input il nome di un file di intestazione e di uscita dovrebbe essere una lista (preferibilmente un albero) di tutti i file, inclusi direttamente o indirettamente.

È stato utile?

Soluzione

Se si dispone di accesso a GCC/G++, quindi il -M opzione in uscita l'elenco di dipendenza.Non fare le cose extra che gli altri strumenti, ma dal momento che è venuta dal compilatore, non c'è alcuna possibilità che vi verrà a prendere i file dal posto "sbagliato".

Altri suggerimenti

Grazie per KeithB.Ho guardato la documentazione per cl.exe (2008) e ha trovato il /showIncludes bandiera.Dall'IDE, questo può essere impostato dalla pagina delle proprietà di ogni file CPP.

Screen shot

Per un peso soluzione, si dovrebbe verificare doxygen.Si esegue la scansione attraverso il vostro codice di base e si presenta con un sito web, in modo efficace, che documenti il codice.Una delle tante cose che si vede è includere alberi.

Se state cercando di essere in grado di collegare l'uscita di questo strumento in un altro processo, quindi questo potrebbe non funzionare per voi (anche se doxygen fa l'uscita di altri formati, io non sono davvero familiarità con questa caratteristica).Se si desidera semplicemente bulbo oculare le dipendenze, però, dovrebbe andare alla grande.

Ho giocato in giro con uno strumento chiamato cinclude2dot.E ' stato abbastanza utile a ottenere una maniglia su una piuttosto grande codebase quando sono venuto a lavorare qui.In realtà ho pensato di integrare nella nostra daily build alla fine.

Prima, cinclude2dot.pl è uno script perl che le analisi di codice C/C++ e produce un #include grafico di dipendenza come un dot file per l'ingresso nel graphviz.

http://www.flourish.org/cinclude2dot/

Se non vuoi fare la fine di quel tipo di utensile manuale, poi le mani-giù da lontano vincitore è a mio parere uno strumento noto come "IncludeManager" da ProFactor.

http://www.profactor.co.uk/includemanager.php

C'è una versione di prova gratuita, ed è fantastico.Si tratta di un plug-in per Visual Studio che è totalmente integrato in modo doppio clic su qualcosa qui porta al luogo dove è inserita lì.

Tooltip mouseovers darvi tutte le info che si vorrebbe, e consente di eseguire il drill down / up, rimuovere tutta la sottoalberi che non si preoccupano, vista rappresentazioni di altri grafici, scorrere un elenco di corrispondenze per questo e per quello, è meraviglioso.

Se sei veloce su di esso, è possibile rielaborare il #include struttura di grandi progetti prima della prova.Anche così, non costa molto, circa $35 per ogni licenza.

Per quello che fa, è quasi perfetto.Non solo #include grafici, ma anche il progetto della croce dipendenze di file condivisi, l'impatto sui tempi di costruzione, caratteristiche dettagliate in griglie, perfetto.

Buone notizie: redhat Fonte-Navigatore (gira su Windows).Naturalmente, opzioni del compilatore (di cui sopra) sono superiori di analisi e non sono sicuro di come andrà a gestire MFC, Qt e la loro magia delle parole chiave.

redhat Source-Navigator

Edificio KeithB risposta, qui è GNUmake sintassi automaticamente 1) generare il file di dipendenza, 2) sempre aggiornato, e 3) del loro uso nei makefile:

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

(Assicurarsi di modificare i rientri hardtabs.)

Capire per C++ dovrebbe essere in grado di aiutarti:si costruisce un database che è possibile accedere dal Perl.

cscope (http://cscope.sourceforge.net/) fa in standalone xterm, e può anche essere utilizzato all'interno del vostro editor preferito - dotato di grande emacs e vi/vim supporto.

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