我想在我的 A.cpp 文件中添加 #include 指令,并且头文件 Bh 位于文件夹中的两层up(例如,如果源文件位于 * E:\ A \ B \ C \ D \ E \ F \ G \ H * 中,则头文件位于 * E中: \ A \ B \ C \ F * ,当然,名称会比这长得多),所以我在Visual Studio 2010中输入了这个令人困惑的语句:
#include"../../
VS 10中的Intellisense功能显示了一个文件列表, B.h 就在其中!我不知道这句话是否正确,但我认为这有问题。你们有没有人告诉我这是错还是正确?你能给我一个更好的解决方案吗? 非常感谢你。
答案 0 :(得分:2)
为什么它不起作用?你有没有做过cd ../../mydir
并检查了它的作用?它就相当于那个。 ..
和.
指向Windows和Linux中的特殊目录。 .
是当前目录,而..
是上一个目录。因此,../../file.h
将返回两个目录以查找您正在查找的文件。毕竟,#include "..."
语句适用于文件所在的相对路径。通常在编写库并且您有一个主detail
子目录时,您会尝试通过#include "../detail/myfile.hpp"
访问它。其他库,如boost选择#include <boost/config/myfile.hpp>
答案 1 :(得分:0)
我认为最好在构建中包含"-I <INCLUDE_DIR>"
参数,只需#include包含列表目录的标题。您可以告诉编译器和链接器查找头文件。
答案 2 :(得分:-1)
..\
将您移动到一个目录中,因此..\..\
会将您移动到两个目录中。我想如果您可以假设脚本位置永远不会改变,那么这很好。但是,如果您将脚本移动到其他驱动器,则会遇到麻烦。最好包括E:\ A \ B \ C \ D \ E \ F \ B.h而不是自己将来证明。