2010-06-30 61 views
0

可能重複:
C/C++: Detecting superfluous #includes?
How should I detect unnecessary #include files in a large C++ project?C/C++:刪除不必要包括

我希望做我們的代碼庫,一些房子的清潔。我想從我們的源文件(* .c和* .cpp)中刪除所有不必要的頭文件。有沒有人知道這樣做的工具或技術?

我們在Mac,Linux和Solaris上使用GCC。在Windows上使用Visual Studio。我瀏覽了兩個編譯器的文檔,似乎沒有辦法讓它對不必要的內容提出警告。

任何想法或建議表示讚賞。

回答

0

我不得不做這一次,我終於實現了這一點:

  1. 我刪除了幾乎是從我的兩個haeder和源文件每#include聲明
  2. 我試圖編譯我的源代碼
  3. 每當編譯器抱怨一些未定義的東西時,我可以這樣做:

    • 添加了一個最小聲明,而不是標頭包含的任何地方我可以(類似於:「類SomeClass;」而不是`#include「someclass.hpp」)
    • 當我沒有其他選擇時添加了必需的包含。
  4. 轉到2.直到成功。

我承認這是漫長而無聊的事情,但它嘲笑了它。

+0

問題在於有超過5000個源文件和總共22個項目。因爲各個項目之間有很多通用代碼,所以每次需要測試更改時都必須重新構建每個項目。在這一點上,它甚至不是關於工時,而是等待1.5小時來編譯所有這些,然後再試一次。 我擔心這將會發生什麼,但我希望有一個更簡單的自動化解決方案。 – 2010-07-01 16:14:11