我有一个可视化工作室解决方案myvs.sln,路径如下:c:dir1dir2dir3myvsmyvsmyvs.sln
。我在c:dir1dir2dir3boostxxx
安装了增强版 xxx.
我在项目中有>属性->c/c++->一般:../..;../../boostxxx
。在 boost 库中,包含文件具有以下语法:#include <boost/smart_ptr/shared_ptr>
.
我的代码文件myfile.h
驻留在c:dir1dir2dir3yy1myfile.h
中。在myfile.h中,我将提升库包含为:#include <boost/shared_ptr.hpp>
。我收到一个错误,上面写着:c:dir1dir2dir3yyy1/myfile.h fatal error C1083 cannot open include file boost/shared_ptr.hpp
。
问题是我应该怎么做才能纠正这个问题?
我还注意到编译器抛出的错误输出具有"\"到 dir3,然后更改为"/"。
很可能我不明白相对路径是如何工作的。另请注意,我只想引用相对路径而不是绝对路径。有人可以帮忙吗?我在Windows平台上使用c ++ visual studio 2010。
搜索路径中的相对路径是指
#include
指令的文件目录"..\.." 从编译器的当前目录的
若要解决此问题,请在 Visual Studio 项目目录中显式启动包含路径,如下所示(字面意思):
关于正斜杠$(项目目录)..\..;$(项目目录)..\..\提升XXX
与反斜杠,请在C++代码的#include
指令中使用正斜杠,因为这是最可移植的。
使用正斜杠或反斜杠(但我更喜欢向后斜杠,以便有一个约定),其中你指的是 Windows 文件系统,例如在包含路径的设置中。