2009-07-27 3 views

risposta

0

volte prima. sempre la stessa risposta - doxygen.

4

doxygen ha un grafico delle dipendenze di file come uno dei suoi diversi output. Potrebbe non essere esattamente quello che vuoi, ma è un inizio.

+0

Sì, lo menziona nella documentazione, ma sembra funzionare solo per i file "documentati", secondo il manuale. In altre parole, se lo si esegue su un albero dei sorgenti, non genererà un grafico. A questo punto, a qualche esperto di doxygen piacerebbe suonare? –

+0

È necessario creare un file di configurazione (o meglio ottenere doxygen per farlo per voi). È quindi necessario modificare il file per attivare alcune funzionalità. Normalmente non produco alberi pieni, quindi non ho un esempio da dare. –

+2

Potresti chiamarlo per ignorare membri non documentati. Doxygen può sicuramente analizzare tutto, date le giuste opzioni. Controllare le seguenti opzioni: EXTRACT_ALL HIDE_UNDOC_MEMBERS HIDE_UNDOC_CLASSES Potrebbe anche essere necessario punto (via Graphviz) per generare diagrammi di classe e altre cose utili. –

1

So che non è open source (né linux, che non si menziona nella domanda ma è nei tag), ma ho trovato che la soluzione migliore a questo problema è ProFactor IncludeManager - era il migliore rispondi ad un question I asked che è praticamente un duplicato esatto della tua domanda, meno il bit open source (quindi perché non ho contrassegnato la tua domanda come una mia duplicazione).

+0

Sembra proprio un attrezzo utile. Doxygen è abbastanza utile per mostrare inclusioni di file (specialmente le inclusioni tra gli alberi delle directory), ma è necessario uno strumento come questo per valutare l'effetto di esse e analizzare l'effetto della rimozione delle dipendenze non necessarie. –

44

Per gli impazienti, che, come me, vogliono solo un elenco di comandi e non RTFM :) Quindi, senza ulteriori indugi (ammesso che abbiate Debian, o il suo ilk) ...

In primo luogo, installare e Doxygen graphviz (che fornisce `punto' per disegnare grafi orientati):

apt-get install doxygen graphviz 

Avanti, dica Doxygen per generare un file di configurazione iniziale che possiamo quindi modificare a mano:

doxygen -g 

Questo si tradurrà in un nuovo file di configurazione, chiamato Doxyfile, generato nella directory corrente. Puoi quindi modificarlo con il tuo editor di testo preferito. Assicurarsi di impostare i seguenti flag per i valori specificati:

HAVE_DOT = YES 
RECURSIVE = YES 
EXTRACT_ALL = YES 
GENERATE_LATEX = NO # Unless you want LaTeX output besides the HTML ... 

Si potrebbe anche voler impostare le seguenti due bandiere per dire Doxygen dove generare la documentazione (che è fondamentalmente solo un mucchio di file organizzati in una directory struttura):

PROJECT_NAME = Foobar 
OUTPUT_DIRECTORY = /tmp/foobar/doc 

Tutto ciò che rimane è quello di raccontare doxygen a fare la sua cosa:

cd foobar/src 
doxygen ~/Doxyfile # Assuming you saved Doxyfile in your home directory. 

Ora, se si è fortunati, si può puntare il browser al file /tmp/foobar/doc/html/index.html, seleziona la scheda "File", quindi fai clic su un file di intestazione per esaminare due grafici: uno mostra i file di intestazione inclusi nel file di intestazione (direttamente o indirettamente), mentre l'altro mostra quali altri file includono direttamente o indirettamente il file di intestazione specificato.

+2

+1: Ah, bella risposta. Stavo solo provando a usare Doxygen per generare un grafico del file include e mi sono chiesto perché non ha funzionato - ho scoperto che 'EXTRACT_ALL' non era impostato su' YES'. –