Sto cercando uno strumento (preferibilmente un plug-in di Visual Studio) che visualizzi tutti i file inclusi da un determinato file e mostri tutti i file inclusi da tali file e così via.Come posso vedere facilmente il grafico di inclusione C/C++?
risposta
Doxygen, con l'aiuto di Graphviz, può farlo. È necessario prima modificare un file di configurazione. Non sarà facile la prima volta che lo fai, ma non è necessario apportare molte modifiche in seguito.
In realtà, nella maggior parte dei casi è semplice: utilizzare la GUI di Windows del Doxygen Wizard per generarlo, oppure dalla riga di comando eseguire 'doxygen -g' per generare un' Doxyfile' predefinito quindi assicurarsi di avere i valori 'INCLUDE_GRAPH' e 'INCLUDED_BY_GRAPH' impostato su' YES'. Potrebbe quindi essere necessario eseguire Doxygen un paio di volte e controllare l'output per modificare i parametri. –
Non nelle tue preferenze, ma doxygen lo fa abbastanza bene.
http://www.codeproject.com/KB/applications/includefinder.aspx
Questa non è una VS plug-in, ma può essere un antipasto per il proprio strumento. Per quanto ho potuto vedere, legge solo i progetti VC6, i nuovi VS hanno un formato XML facile da analizzare. Ciò di cui hai bisogno sono i percorsi di inclusione predefiniti in modo che lo strumento possa trovare i file inclusi. In alternativa è possibile fornire una finestra di impostazioni nella GUI come input dell'utente.
Non proprio quello che vuoi forse, ma il compilatore di Visual Studio (cl.exe) ha un'opzione /showIncludes
che ti mostrerà un albero degli include quando compili un file.
Se si desidera ottenere queste informazioni per un singolo file, è possibile fare clic con il pulsante destro del mouse sul Solution Explorer, selezionare "Proprietà" e nella sezione "Riga di comando" aggiungere/mostrareInclude alle "Opzioni aggiuntive" . (Nota Sto usando VC++ 2005, quindi potrebbe essere diverso per le versioni più recenti).
L'output che si ottiene è un po '... contorto, ma mostra ciò che viene incluso e in quale ordine.
Per inciso, la stessa funzionalità in GCC e nel compilatore Intel C++ (almeno le mie versioni) è -H
.
Se si utilizza Visual Studio 2010, è possibile utilizzare il nuovo Visualization and Modelling Feature Pack di Microsoft, che ha una funzione per generare un grafico di inclusione. Questo è disponibile solo tramite un indice MSDN.
Se questo è utile come feature pack come sembra, questo post merita almeno 100 uptotes. –
Dagli screenshot il feature pack di modellazione sembra davvero uno strumento da sogno. Tuttavia, non è necessario solo un abbonamento MSDN ma anche un Premium o Ultimate Visual Studio per qualificarsi per il download ;-( – BuschnicK
E generalmente non funziona per i progetti C++. –
Primo, cinclude2dot.pl è uno script perl che analizza il codice C/C++ e produce un grafico di dipendenza #include come file punto per l'immissione in graphviz.
http://www.flourish.org/cinclude2dot/
Se non si vuole fare la fine di quella sorta di strumento manuale, quindi il mani verso il basso dal vincitore gran lunga è a mio parere uno strumento noto come "IncludeManager" dal Profactor.
http://www.profactor.co.uk/includemanager.php
C'è una prova gratuita, ed è impressionante. È un plug-in per Visual Studio completamente integrato, quindi fare doppio clic su qualcosa da qui ti porta al punto in cui è incluso laggiù.
I mouseover del tooltip ti forniscono tutte le informazioni che desideri e ti consentono di eseguire il drill down, rimuovere interi sotto-canali che non ti interessano, visualizzare rappresentazioni diverse dai grafici, scorrere un elenco di corrispondenze per questo e quello , è meraviglioso.
Se sei veloce, puoi rifattorizzare la struttura #include di un grande progetto prima che scada il processo.Anche così, non costa molto, circa $ 35 per licenza.
Per quello che fa, è quasi perfetto. #include non solo grafici ma anche cross-dipendenze tra progetti di file condivisi, impatto sui tempi di costruzione, proprietà dettagliate nelle griglie, perfetto.
IncludeManager sembra che funzioni facilmente ed è poco costoso. Darò a quello un colpo. – Boinst
È possibile provare il metodo suggerito da questo Stack Overflow answer:
C'è un C/C++ - impostazione> progetto Avanzate "mostra comprende". Che genererà l'albero. Si associa all'interruttore del compilatore /showIncludes
- 1. Come posso vedere facilmente l'output da un'istruzione Haskell Template?
- 2. come posso vedere il piano di esecuzione
- 3. Impostazione del campo dell'asse Y nel grafico delle serie CC
- 4. Come testare facilmente il codice?
- 5. Come posso tradurre facilmente qualcosa con python?
- 6. Come posso facilmente testare l'unità con CodeIgniter?
- 7. Come posso vedere il database predefinito di un login?
- 8. Come posso vedere il contenuto di una richiesta MultipartForm?
- 9. Come posso filtrare il grafico di revisione SVN di Tortoise prima di aprirlo?
- 10. DbEntityValidationException - Come posso sapere facilmente che cosa ha causato l'errore?
- 11. Funzionamento CC-Tray
- 12. Come posso facilmente correggere gli errori di Checkstyle?
- 13. Come posso creare facilmente un'immagine di avvio per iPhone?
- 14. Come posso sostituire facilmente un assembly Microsoft Fakes?
- 15. In ESS/Emacs, come posso ottenere il buffer di processo R per scorrere verso il basso dopo un Cc Cj o Cc Cr
- 16. Posso far scorrere facilmente Excel senza utilizzare il tasto centrale?
- 17. Come riordinare facilmente TabControl?
- 18. Come posso configurare Wireshark per vedere il traffico HTTPS?
- 19. Come posso vedere il nome sicuro del mio assembly?
- 20. Come posso vedere il mio commit non premuto locale?
- 21. Come posso ottenere il componente gigante di un grafico NetworkX?
- 22. PHP Mail, CC Field
- 23. Come posso vedere gli errori in console.developers.google.com?
- 24. Come posso ottenere facilmente il nome di una classe di case Scala?
- 25. Dove posso vedere il codice sorgente di glassfish sul web
- 26. Come posso creare facilmente un modello/UML in Eclipse?
- 27. Come posso aggiungere facilmente un nuovo metodo in Eclipse?
- 28. Come posso rinominare facilmente i file con Perl?
- 29. Come posso ottenere facilmente un TextReader da un XDocument?
- 30. Come posso forzare Doxygen a mostrare il percorso completo di inclusione?
dupe? http://stackoverflow.com/questions/42308/tool-to-track-include-dependencies –
Sì. La mia ricerca fu mi ha fallito. – CannibalSmith
@JohanKotlinski, penso che l'argomento parli solo del tracciamento delle dipendenze non su come creare un grafico, un'importante differenza IMO. –