我有一个像这样的项目结构,有一些我希望包含在程序中的头文件: \项目\子目录\的SourceFile \ headerfile1.h \项目\子目录\ TestDirectory \ headerfile2.h \项目\子目录\ TestDirectory \子目录\ SourceFile.cpp
SourceFile.cpp有#include“headerfile1.h”和#include“headerfile2.h”。
在MVS中,如果我选择项目/属性/配置属性/ C / C ++ /常规/附加包含目录,则浏览到SourceFile和TestDirectory位置添加将headerfile1和headerfile2的位置添加为包含路径,然后编译所有内容。
但是,包含路径在项目中被指定为绝对路径(C:\ Users ......等),这不是我想要的,我想将它们指定为相对路径。
我已经尝试编辑这些路径,使用数百万种不同的组合,以防我愚蠢并将间接关闭的水平提高一个,即我已经尝试了全部 。 \ .. \ ... \ .... \ \ TestDirectory .. \ TestDirectory ... \ TestDirectory 。\源文件 ..\源文件 ...\源文件 ... \子目录\ TestDirectory 等等。
没什么可行的。除了指定的绝对路径以外,无法找到包含的文件。我做错了什么?
由于
答案 0 :(得分:1)
对于使用引用表单的#include
语句,搜索包含#include
语句的文件的文件starts with the directory。在这种情况下,它将是包含文件SourceFile.cpp的目录\ Project \ Subdirectory \ TestDirectory \ Subdirectory。
要从那里到达headerfile1,您需要备份两次以进入'\ Project \ SubDirectory',然后从那里进入SourceFile。那给你这个......
#include "..\..\SourceFile\headerfile1.h"
要访问headerfile2,您只需备份一次即可转到'\ Project \ SubDirectory \ TestDirectory'...
#include "..\headerfile2.h"