2011-06-09 63 views
0

我有一个像这样的项目结构,我想在程序中包含几个头文件: \ Project \ Subdirectory \ SourceFile \ headerfile1.h \项目\子目录\ TestDirectory \ headerfile2.h \项目\子目录\ TestDirectory \子目录\ SourceFile.cpp无法在MVS 10中为C++指定相对包含目录路径

SourceFile.cpp具有的#include “headerfile1.h” 和#包括 “headerfile2.h”。在MVS中,如果选择Project/Properties/Configuration Properties/C/C++/General/Additional Include Directories,然后浏览SourceFile和TestDirectory位置,添加headerfile1和headerfile2的位置作为包含路径,然后编译所有内容。

但是,包含路径在项目中被指定为绝对路径(C:\ Users ......等),这不是我想要的,我想将它们指定为相对路径。

我试过编辑这些路径,使用数百万个不同的组合,以防万一我正在愚蠢地获取间接关闭的级别,即我尝试了所有的 。 。\ .. \ ... \ .... \ 。\ TestDirectory .. \ TestDirectory ... \ TestDirectory 。\的SourceFile .. \的SourceFile ... \的SourceFile 。 .. \ Subdirectory \ TestDirectory etc. etc. etc.

Bu没什么作用。除了指定的绝对路径以外的任何东西,都不能找到包含的文件。我究竟做错了什么?

感谢

回答

1

对于使用引号形式#include报表,搜索包含#include声明的文件的文件starts with the directory。在这种情况下,这将是包含文件SourceFile.cpp的目录\ Project \ Subdirectory \ TestDirectory \ Subdirectory。

要从那里到达headerfile1,需要备份两次以进入'\ Project \ SubDirectory',然后从那里进入SourceFile。这就给了你这个...

#include "..\..\SourceFile\headerfile1.h" 

为了达到headerfile2你只需要备份一次去“\项目\子目录\ TestDirectory” ......

#include "..\headerfile2.h" 
+0

注意,在VS2008相对路径在附加包含路径中相对于项目文件夹库。现在它们看起来与正在编译的源文件相关。 – 2012-01-27 16:55:06

相关问题