【问题标题】:visual studio 2010 include directory pathsVisual Studio 2010 包含目录路径
【发布时间】:2012-11-02 07:26:43
【问题描述】:

我有一个 Visual Studio 解决方案 myvs.sln,路径如下:c:\dir1\dir2\dir3\myvs\myvs\myvs.sln。我在c:\dir1\dir2\dir3\boostxxx\ 中安装了 boost 版本 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

问题是我应该怎么做才能纠正这个问题?

我还注意到编译器抛出的错误输出在 dir3 之前有“\”,然后变为“/”。

很可能我不明白相对路径是如何工作的。另请注意,我只想引用相对路径而不是绝对路径。有人可以帮忙吗?我在 windows 平台上使用 c++ Visual Studio 2010。

【问题讨论】:

  • 问:您的 Visual Studio“包含”列表中有(全部!)boost 头目录吗?它们是用“;”分隔的吗?
  • 不,我只有安装了 boost 的基本目录:../../boostxxx。在包含路径列表中

标签: c++ visual-studio-2010 include include-path


【解决方案1】:

搜索路径中的相对路径指的是带有#include指令的文件所在目录编译器的当前目录,一些简单的测试现在显示。

"..\.." 从你的头文件编译器的当前目录而不是从你的项目目录上升两级。

要解决此问题,请在 Visual Studio 项目目录中显式启动包含路径,如下(字面意思):

$(ProjectDir)..\..;$(ProjectDir)..\..\BoostXXX

关于正斜杠与反斜杠,请在 C++ 代码的 #include 指令中使用正斜杠,因为这样最便于移植。

在您指的是 Windows 文件系统的地方,例如在包含路径的设置中,使用正斜杠或反斜杠(但我更喜欢反斜杠以便有一个单一的约定)。

【讨论】:

    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2016-07-07
    相关资源
    最近更新 更多