0

我想在我的A.cpp文件中添加一个#include指令,并且头文件Bh位于两层以上的文件夹中(例如,如果源文件位于*E:\A\B\C\D\E \F\G\H*,头文件在*E:\A\B\C\F*,当然名字会比这个长很多),所以我在 Visual Studio 2010 中输入了这个令人困惑的语句:

#include"../../

VS 10 中的 Intellisense 功能显示了文件列表,Bh就在其中!我不知道这种说法是否正确,但我认为这有问题。你们谁能告诉我这是错误的还是正确的?你能给我一个更好的解决方案吗?非常感谢。

4

3 回答 3

2

为什么它不起作用?你有没有做过cd ../../mydir并检查过它的作用?它相当于那个。...指向 Windows 和 Linux 中的一个特殊目录。.是当前目录,..而是前一个目录。因此../../file.h,将返回两个目录以查找您要查找的文件。毕竟,该#include "..."语句适用于文件所在的相对路径。通常在编写库并且您有一个主detail子目录时,您会尝试通过 访问它#include "../detail/myfile.hpp",而其他库(例如 boost)则选择#include <boost/config/myfile.hpp>

于 2013-07-29T16:56:14.560 回答
0

我认为最好将"-I <INCLUDE_DIR>"参数包含在您的构建中,并且只需 #include 标头而不列出目录。这是您告诉编译器和链接器查找头文件的地方。

于 2013-07-29T16:55:40.610 回答
-1

..\将您向上移动一个目录,因此..\..\将您向上移动两个目录。如果您可以假设脚本位置永远不会改变,我想这很好。但是,如果您将脚本移动到不同的驱动器,您将遇到麻烦。最好包含 E:\A\B\C\D\E\F\Bh 而不是自己将来证明。

于 2013-07-29T17:01:19.443 回答