我有一个visual studio解决方案myvs.sln,其路径如下:c:\dir1\dir2\dir3\myvs\myvs\myvs.sln
。我在c:\dir1\dir2\dir3\boostxxx\
中安装了升级版xxx。
我在项目中有> properties-> c / c ++ - > general:../..;../../boostxxx
。在boost文件库中,包含文件具有以下语法:#include <boost/smart_ptr/shared_ptr>
。
我的代码文件myfile.h
位于c:\dir1\dir2\dir3\yy1\myfile.h
。在myfile.h中,我将boost库包括为:#include <boost/shared_ptr.hpp>
。我收到的错误是:c:\dir1\dir2\dir3\yyy1/myfile.h fatal error C1083 cannot open include file boost/shared_ptr.hpp
。
问题是我应该怎么做才能纠正这个问题?
我还注意到编译器抛出的错误输出“d”高达dir3然后更改为“/".
我很可能不明白相对路径是如何工作的。另请注意,我只想引用相对路径而不是绝对路径。有人可以帮忙吗?我在使用c ++ visual studio 2010的Windows平台上。
答案 0 :(得分:3)
搜索路径中的相对路径 引用文件的目录,其中是编译器的当前目录,现在显示一些简单的测试#include
指令
“.. \ ..”从你的头文件升级到编译器的当前目录而不是你的项目目录。
要解决此问题,请在Visual Studio项目目录中显式启动包含路径,如下所示(字面意思):
$(PROJECTDIR).. \ ..; $(PROJECTDIR).. \ .. \ BoostXXX
关于正斜杠和反斜杠,在C ++代码的#include
指令中使用正斜杠,因为这是最便携的。
使用正斜杠或反斜杠(但我更喜欢向后斜杠以便有一个约定),你指的是Windows文件系统,例如在包含路径的设置中。