包含来自不同目录的头文件?
我正在一个项目上工作,我不知道该如何从其他目录导入文件。下面是我的一些文件进行组织:包含来自不同目录的头文件?
-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行的一部分。例如:
包括“页眉/ myHeader.h”
包括“../moreHeaders/myOtherHeader.h”
这种方法的缺点是,它需要你反映你的目录结构你的代码。如果你更新你的目录结构,你的代码将不再工作。
一个更好的方法是告诉你的编译器或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