[英]visual c++: #include files from other projects in the same solution
我正在使用 Visual C++ 開發游戲。 我在單獨的項目中有一些組件,並設置了項目依賴項。 如何#include 來自不同項目的頭文件? 我不知道如何在另一個項目中使用一個項目中的類。
在您想要#include 來自另一個項目的頭文件的項目中,您需要將頭文件的路徑添加到項目配置中的Additional Include Directories部分。
要訪問項目配置:
要包含頭文件,只需在代碼中寫入以下內容:
#include "filename.h"
請注意,您無需在此處指定路徑,因為您已經在其他包含目錄中包含了該目錄,因此 Visual Studio 將知道在哪里查找它。
如果您不想在項目設置中添加每個頭文件位置,您可以只包含一個目錄直到某個點,然后 #include 相對於該點:
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
如果使用靜態庫(即 .lib 文件),您還需要將庫添加到鏈接器輸入,以便在鏈接時可以鏈接符號(否則您將獲得未解析的符號):
由於兩個項目都在同一個解決方案下,因此包含文件和鏈接器的方法更簡單,如https://docs.microsoft.com/en-us/cpp/build/adding-references-in-visual-cpp-項目?view=vs-2019 :
#include "../libProject/libHeader.h"
)。 #include
與項目無關 - 它只是告訴預處理器“將頭文件的內容放在這里”。 如果你給它一個指向正確位置的路徑(可以是一個相對路徑,比如 ../your_file.h),它將被正確包含。
但是,您必須了解庫(靜態/動態庫)才能使此類項目正確鏈接 - 但這是另一個問題。
擴展@Benav 的回答,我的首選方法是:
$(SolutionDir)
添加到附加包含目錄現在,您可以包含引用項目中的標題,如下所示:
#include "OtherProject/Header.h"
筆記:
#include
不需要第 2 步,但它設置了您可能需要的正確構建依賴項。您需要在項目屬性中設置頭文件的路徑,以便編譯器在嘗試查找頭文件時查找頭文件。 我不記得確切的位置,但是查看項目屬性,您應該會看到它。
盡量避免#include 指令中的完整路徑引用,無論它們是絕對的還是相對的。 相反,在您的項目設置中添加其他項目的包含文件夾的位置。 必要時僅使用路徑引用中的子文件夾。 這樣,無需更新代碼就可以更輕松地移動內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.