2011-07-14 101 views
1

我目前正在將一個相當大的項目從C++ Builder 5移植到最新版本C++ Builder XE。這是我第一次使用C++ Builder。我在文件中遇到了一個錯誤,但我不想包含這個文件(它是不再需要的組件的代碼)。但是,我無法找到包含該文件的位置和方式。除了錯誤本身之外,編譯器錯誤根本沒有提供任何提示。你通常如何找出包含文件的位置?C++ Builder XE:找出包含特定h文件的位置

回答

5

預處理器對此非常完美。右鍵單擊cpp文件,在項目管理器中給出錯誤,然後選擇「預處理」 從中得到的輸出會告訴您每個文件和行號的處理順序。然後您可以搜索有問題的文件,並且它上面的行是包含它的文件。 這也可能是另一個頭文件,所以它可能是一個長鏈,但你可以確切地確定它來自哪裏。

+0

嗯,我試過了,但是我找不到在輸出中導致錯誤的文件。爲什麼會這樣?我知道最終導致錯誤的文件包含在我想通過其他五個頭文件鏈間接編譯的文件中,但我甚至無法在輸出中找到第二個鏈。 – mort

+0

如果您正在預處理正確的cpp文件,則錯誤消息中的確切文件和行應該位於.i文件中。如果這是錯誤信息指向的地方,你應該能夠搜索problemheader.h:999。 –

1

如果這些文件比較大,像Doxygen這樣的工具可以幫助向您顯示包含依賴關係(以及調用路徑等)。

如果只有一次或兩次,您將不得不這樣做,David Dean對預處理器的建議是黃金。

+0

我也已經考慮過Doxygen,因爲我們已經在使用它。唯一的問題是:我想擺脫的文件是外部文件(來自各種組件),因此您不能立即看到這些文件包含在哪裏,只能在項目內檢查文件(如果它們可能是間接的)包含某個文件。這是一個很大的幫助,但不是很舒服。 – mort

1

在項目選項中,啓用編譯器的常規消息。當編譯器遇到錯誤時,您將能夠看到導致錯誤代碼的包含鏈。

+0

感謝您的提示,但我可以在哪裏找到此設置? – mort

+0

工具 - >選項...->環境選項 - > C++選項 - >項目屬性,「顯示常規消息」 –

相關問題