有沒有辦法讓它變成這樣我不必在../Folder1/在一切之前?
是的,有。答案取決於幾個因素,我相信我會錯過幾個。
檢查以下內容:
- 在編譯器設置檢查 「附加包含」 下的 「C/C++」
- 還檢查在 「VC++」 的值爲 「包含目錄」
- 檢查設置對於「忽略標準包括路徑」中的「C/C++ /預處理器」
- 檢查您的預編譯頭設置
- 檢查「的#define」 /「和#undef」在您的源文件和編譯器設置
- 檢查項目,可以使用或繼承
如果使用「foo.h中」(而不是< foo.h中>)預處理器會看在你的項目屬性表特定文件夾第一,在IDE特定的文件夾最後。如果您使用<foo.h>它首先從標準包含文件夾開始,例如那些標準運行時庫所需的。
當一個文件使用「../foo.h」時,它的路徑相對於包含該文件的文件的位置。可能會有棘手的例外。
還有很多事情可以影響預處理器如何找到它的包含路徑。如果您不確定預處理程序對特定文件所做的操作,則可以通過預處理器設置中的「Preprocess to a file」開關使預處理程序輸出可見。該文件顯示預處理器完成後以及編譯器開始工作之前文件的源代碼。
隨着更多的經驗,特別是文件夾/項目結構以及如何包含文件的清晰策略,整個事情變得更容易。例如,確保每個包含文件中的第一個非註釋行都有「#pragma once」。
我希望這給你幾個想法,爲下一步。祝你好運!
我以爲它想要改變的包含路徑,而不是源目錄。 – 2010-08-10 10:44:14
這很好,謝謝。 :P但是,我現在得到錯誤關於它找不到很多的源文件(仍然在源代碼目錄下)或'boost/shared_ptr.hpp'。 [我應該編輯我的問題嗎?] – 2010-08-10 10:48:21