2010-11-08 43 views
3

我正在尋找一種至少可以做兩件事之一的工具。優化標題

  • 猜猜什麼標題可能未被使用,可以刪除。
  • 猜猜哪個頭文件應該包含在文件中,但是通過包含其他文件間接包含它們。從而允許正確編譯文件。

有沒有這樣的工具?

+0

相似的問題:http://stackoverflow.com/questions/3644293/are-there-tools-that-help-organizing-includes – Frank 2010-11-08 17:01:52

回答

1

我的一位同事寫了一個非常簡單的腳本來實現這個過程的一部分(而且速度太慢......)。

基本思路是試評依次在每個include,然後嘗試編譯對象,它不處理包括報頭內,但已經刪除的無用文件:)

編輯大量:算法

for s in sourceFiles: 
    while t := commentNextInclude(s): 
    if compilationOk(): s := t 

正如我所說的

僞代碼,註釋依次對每個#include,每一次檢查如果程序仍然編譯,如果是的話,驗證評論,然後繼續下一個評論。

雖然我沒有披露腳本來源的權利。

+0

你介意分享一下關於這個「簡單」腳本的更多細節嗎? – ronag 2010-11-09 12:28:43

+0

這可能會導致您刪除「有效」包括,因爲某些以前的頭文件已經間接包含了您需要的代碼。 – jalf 2010-11-09 16:00:42

+0

@jalf:是的,這很粗糙,但我並不介意這種重新包含的情況。更煩人的是刪除模板專門化或函數重載,沒有它,文件仍然編譯,但產生不同的結果。這個很煩人,但很少見,並且會被測試抓住。它通常不會發生,除非這些方法在標題中隨意拋出...... – 2010-11-10 07:31:43

4

您可以使用GCC警告「-Wmissing-declarations」和「-Wredundant-decls」。這不完全是你想要的,但可能會有很大幫助。

+0

這可能工作。但是,由於我是VS用戶,因此它不適用於我。我將它打開,以便非VS用戶也可以從潛在答案中找到有用的東西。 – ronag 2010-11-08 16:07:49