簡體   English   中英

C ++包括文件瀏覽器

[英]C++ include file browser

我有一個非常大的項目,其中包含大量復雜的頭文件,這些文件都包含在內。 它還依賴大量的第三方庫。 我正在努力理清這個爛攤子,但是我遇到了一些麻煩,因為很多時候我會刪除一個#include指令,但卻發現它所包含的內容仍然包含在其他文件中。 有沒有什么工具可以幫助我理解這個? 我真的希望能夠點擊.h文件並詢問它(直接或間接)包含哪些CPP文件,以及包含它的路徑,同樣點擊一個cpp文件並詢問它。包括h文件(直接和間接)。 我從來沒有聽說過這樣做的工具,而且一些快速的谷歌搜索沒有改變任何東西,但也許我不知道該搜索什么。

對於VS2003,有/ showIncludes標志(在C / C ++ / Advanced屬性中)。 這將打印每個.cpp文件包含的所有標題及其包含的內容,因此您可以從那里開始。

我確信VS2008在同一個地方有相同的選項。

如果你使用GCC編譯器,試試這個

g++ -M abc.cpp

它將顯示文件abc.cpp的所有include依賴項

你的情況讓我想起了我自己。 我有一堆我創建的標題,我用它作為庫而不是煩擾DLL。

當然循環包含可能會變得麻煩,所以我發現像Visual Assist X (1)這樣的工具可以幫助解決這類問題。 它有一個函數,可以找到對東西的引用,這樣你就可以輕松地清除某些東西被定義/聲明/包含等等。它還有很多其他有用的功能,所以我認為它非常有用。

可能有其他工具/插件具有引用功能,但通常作為該實用程序的其他重構和生產力功能中的一個功能。

HTH

這非常繁瑣,但你可以通過使用#error(和#pragma message)縮小包含線路在第三方的范圍來二進制搜索到#include發生的位置。 我已經在我試圖追蹤的單個文件的情況下完成了這個,但聽起來你的問題更大,所以其他人提到的其中一個工具可能會更有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM