我正在一個項目上工作,我不知道該如何從其他目錄導入文件。下面是我的一些文件進行組織:包含來自不同目錄的頭文件?
-stdafx.h
-core/
-->renderer.cpp
-shapes/
-->sphere.h
-->sphere.cpp
如何訪問從core/renderer.cpp
的stdafx.h
和shapes/sphere.h
?
我正在一個項目上工作,我不知道該如何從其他目錄導入文件。下面是我的一些文件進行組織:包含來自不同目錄的頭文件?
-stdafx.h
-core/
-->renderer.cpp
-shapes/
-->sphere.h
-->sphere.cpp
如何訪問從core/renderer.cpp
的stdafx.h
和shapes/sphere.h
?
有很多方法。例如,您可以使用#include "../stdafx.h"
。更常見的是將項目的根添加到包含路徑並使用#include "shapes/sphere.h"
。或者在包含路徑中有一個單獨的包含標題的目錄。
我該如何添加一個根? – 2011-12-23 23:31:05
它在設置中的某處。正如Dave指出的那樣,這是'/ I'選項,但是你要找的東西可能是項目設置中的東西,或者它所謂的東西,有一段時間沒有看到Visual Studio。 – 2011-12-23 23:33:56
您可以使用相對路徑:
#include "../stdafx.h"
#include "../shapes/sphere.h"
或者加入你的項目目錄,以你的編譯器包含路徑和參考他們像正常:
#include "stdafx.h"
#include "shapes/sphere.h"
可以使用/I
command line option添加路徑或在您的項目設置中設置路徑。
如何添加項目目錄?對不起,我是新來的C++ – 2011-12-23 23:32:05
我沒有Visual Studio了(大約一年左右我沒有使用它)。但是,** [本頁](http://www.steptools.com/support/stdev_docs/help/settings_vc10.html)**有一個屏幕截圖,可準確顯示路徑應添加到項目設置中的位置。 – 2011-12-23 23:43:36
這樣做的一個(壞)方法是在頭文件中加入一個相對路徑,作爲#include行的一部分。例如:
這種方法的缺點是,它需要你反映你的目錄結構你的代碼。如果你更新你的目錄結構,你的代碼將不再工作。
一個更好的方法是告訴你的編譯器或IDE你在一些其他位置有一堆頭文件,這樣當它在當前目錄中找不到它們時,它會看到它。這通常可以通過在IDE項目設置中設置「包含路徑」或「搜索目錄」來完成。
在Visual Studio中,您可以在解決方案資源管理器中右鍵單擊您的項目,然後選擇「屬性」,然後選擇「VC++目錄」選項卡。從這裏,你會看到一個名爲「包含目錄」的行。在那裏添加你的包含目錄。
在Code :: Blocks中,轉到Project菜單並選擇「Build Options」,然後選擇「Search directories」選項卡。在那裏添加你的包含目錄。
使用g ++,可以使用-I選項來指定備用包含目錄。
G ++ -o主要-I /來源/包括main.cpp的
這種方法的好處是,如果你改變你的目錄結構,你只需要改變單一的編譯器或IDE設置而不是每個代碼文件。
你使用什麼編譯器? – 2011-12-23 23:25:29
Microsoft Visual Studio 2010 – 2011-12-23 23:26:04
請謹慎使用以下建議來使用'../'表示法。請參見[頭文件的相對路徑有什麼好處](http://stackoverflow.com/questions/597318/)。 – 2011-12-24 05:58:52