我在我的C++程序中使用外部庫。這個庫有一個名爲「Common.h」的fie。不知道這個文件,我也在我的程序中創建了一個「Common.h」。在頭文件中使用編譯器標誌「#pragma once」我可以確保這兩個文件都可以包含在編譯中。但是,我意識到當我在程序中調用我的「Common.h」時,預處理器錯誤地包含了來自外部庫的「Common.h」,這會破壞編譯。有沒有像「命名空間」這樣的選項允許我包含正確的文件。我發現它非常困難,因爲我們可能不(實際上不需要)意識到外部庫中的所有文件。如何在C++項目中包含具有相似名稱的頭文件
3
A
回答
8
一般程序有幾個所謂的包括路徑查找頭文件。看起來你已經包含了包含你的「Common.h」文件以及庫頭目錄的路徑。對我來說,完美的解決方案似乎除去包含的庫文件路徑,並使用明確的相對路徑,如:
#include "mylib/include/Common.h"
+0
不應該忘記#include <>和#include「」具有不同的優先級。一個使用<>在平臺定義的文件夾(特定於實現)中查找,其他 - 首先在項目文件夾中,應該使用非遞歸部分路徑(有實現細節,但主要是因爲大量不同的平臺) – Swift
1
相關問題
- 1. 如何在頭文件中包含依賴項而不將其包含在包含頭文件的項目中
- 2. Dev-C++保存具有相似名稱的源文件?
- 3. Git如何添加多個具有相似名稱的文件?
- 4. 如何在同一路徑中動態創建包含具有相似名稱的文件的對象?
- 5. 在Visual C++ 2010項目中包含visual C++ 6.0頭文件
- 6. 在包含路徑中具有相同名稱的兩個標頭
- 7. 具有多個相同名稱的源文件的VisualStudio項目?
- 8. 在腳本中將文件移動到具有相似名稱的目錄
- 9. 文件夾名稱包含名稱c#目錄
- 10. 在C++項目中包含.idl文件
- 11. 在Xcode C++項目中包含頭文件
- 12. 在單個項目中有兩個具有相同名稱的jar文件netbeans
- 13. 南特複製具有相似名稱的所有文件
- 14. 包含具有圖像的文件夾c#項目
- 15. 如何在主目錄中包含具有絕對路徑的頭文件?
- 16. Visual Studio是否只包含具有相同項目名稱空間的dll中的aspx.cs文件?
- 17. 如何包含兩個不同的包含兩個具有相同名稱的不同類的頭?
- 18. 如何在純C和CUDA C文件中包含頭文件?
- 19. 如何從C#中具有相同名稱的文件夾中打開文件
- 20. 將文件放在具有相似名稱的文件夾中cmd
- 21. 如何在文件.gitignore中包含.svn目錄? (所有名稱的目錄中包含點)
- 22. 選擇具有相似名稱的行
- 23. 如何從Ant構建腳本中排除具有相似名稱的文件?
- 24. VS2005 - 在同一個項目中具有相同名稱的多個文件
- 25. 如何刪除明文中具有相同名稱的文件
- 26. Python:比較具有相似名稱的文件(遞歸地)
- 27. Expect腳本:運行兩個具有相似名稱的文件
- 28. 讀取輸入和移動具有相似名稱的文件
- 29. 如何更改項目包含的文件夾名稱在VS 2010的模板
- 30. 如何在各種目錄中檢測具有相同名稱的文件?
的唯一方法,而使用相同的名稱來區分它們是由包括部分或全部文件路徑的包含指令。 –
您可以將標題存儲在項目子文件夾和'#include「my_project/Common.h」'中。 TBH圖書館應該已經爲自己做了。也許你編譯器的include標誌設置不正確? – Galik
讓文件夾名稱爲頭文件的名稱空間。 –