我和我的團隊正在研究一個非常大的項目,其中包含許多具有各自頭文件和源文件的類。我們試圖將所有包含C++庫和項目類頭文件的內容合併到一個名爲「Includes.h」的文件中,該文件包含在每個頭文件中。我在做這件事時遇到的一個問題是類頭文件基本上包含它們自己。我在每個頭文件的頂部都包含了#pragma once
。當我在「#Includes.h」文件中註釋掉#include "Controller.h"
時,「Controller.h」的錯誤消失。包含問題和包括警衛
回答
請請請漂亮請不要這樣做。
優先轉發聲明。然後是單個包含文件。
否則,你改變一個包含文件,它必須編譯很多。即浪費時間。
Bascially得到每個頭文件能夠用空白的cpp文件進行編譯。最小的依賴。
那麼最好只在每個頭文件中直接包含其他頭文件?有沒有一種方法可以將它們全部包含在內,只需從Include.h中排除包含文件的文件?幾乎所有的頭文件都包含頭文件的其餘部分。 – joekleespies
@ user3516792 - 頭文件應該只使用前向聲明。當你不使用它們時,爲什麼要包含它們? –
@ user3516792:請不要使用猛獁包含文件。它爲您的構建系統解決了文件依賴關係。如果更改了一個頭文件,則必須構建所有文件,包括那些不使用更改的頭文件的文件。因此,不是編譯200個文件中的一個文件,編譯系統將編譯全部200個。 –
- 1. 與包含警衛的C問題
- 2. 問題與包括後衛
- 3. 標題/包括警衛不工作?
- 4. SAS宏包括警衛
- 5. 函數包括隨機性和警衛
- 6. 命名包含警衛
- 7. C++包括警衛不出現工作?
- 8. 米斯拉警告爲包括後衛
- 9. C包括衛兵
- 10. C++包括後衛
- 11. 問題包括
- 12. 多個定義,即使我使用extern和包括警衛
- 13. 包括護衛風格,C++
- 14. 包括[警告(!)
- 15. 模板類和在C++中包含警衛
- 16. 問題,包括comdef.h
- 17. PHP包括問題
- 18. EF7。包括問題
- 19. MSVC問題包括
- 20. C++,#包括問題!
- 21. PHP包括問題
- 22. 問題包括PHP
- 23. 包含和路徑問題
- 24. 在內部包含其他頭文件包含警衛導致錯誤
- 25. Primefaces,jQuery的包括頁面上的UI問題:包含在p:tabview
- 26. PHP的問題包括一個包含文件
- 27. 爲什麼不包括曾經工作的警衛或雜注?
- 28. 有什麼情況下你不想包括警衛?
- 29. 具有重複的警告包括在Objective-C後衛C++頭
- 30. C++包括警衛似乎沒有工作
在網上搜索「C++ include guards」。編譯器中'#pragma once'不可移植。 –