你能否通過回答我關於Visual Studio包含行爲的以下問題來幫助我?如何在Visual Studio中處理括號形式的include指令?
我創建了一個新的C++項目,它引用了一個已經存在的項目,其源文件不應該被修改。我結束了以下文件 結構:
-MyProject
+---MyProject.sln
+---MyProject.vcxproj
+---MyProject.cpp
+---CommonHeader.h
-ExistingProject
+---project
+---+---ExistingProject.vcxproj
+---source
+---+---ExistingProject1.h
+---+---ExistingProject2.h
+---+---ExistingProject1.c
+---+---ExistingProject2.c
在開始的時候,我甚至不能編譯ExistingProject。內ExistingProject1.c,下面包括語句存在:
#include <ExistingProject1.h>
從here我瞭解到,在該情況下支架,包括Visual Studio中並不在同一目錄中查找頭作爲一個包含文件包含聲明。因此,我的第一個問題是:
1)這是真的,那我必須添加」 ../source/"-Directory到ExistingProject.vcxproj的包含目錄,雖然頭文件已經添加到Visual Studio項目?
要使用ExistingProject的結構和功能,我必須在我的MyProject.cpp中包含ExistingProject2.h。但在ExistingProject2.h中,同樣包括聲明
#include <ExistingProject1.h>
存在。這導致了我的第二個問題:
?2)這是真的,那我必須添加」 ../ExistingProject/source/-Directory到MyProject.vcxproj項目包含目錄以及
現在來真是個奇怪的問題。如果某個定義設置,它必須被內MyProject的設置,則ExistingProject2.h還包括通過
#include <CommonHeader.h>
外部頭文件,它必須由被定義依賴項目,這導致了我的最後一個問題重複:
3)是真的,我只有以下兩個選項來編譯這個外部頭文件?
- 我有我的CommonHeader.h複製到 「ExistingProject \源\」 - 結帳時目錄。
- 我必須將「。」 - 目錄添加到MyProject.vcxproj項目的Include Directories中,並且我必須將「../../MyProject/"-Directory」添加到ExistingProject.vcxproj的Include目錄中。
第二個選項是沒有意義的。第一個真的是我唯一的選擇來處理這個括號形式包括外部頭文件嗎?
並且:至少應該位於vcxproj文件旁邊的位置,位於該項目中使用的頭文件的包含目錄中?
對不起,愚蠢的拼寫。我是一個非常糟糕的解釋者。 祝大家週末愉快。
非常感謝您的回答。 – Allgaeuer