Visual Studio在哪里查找C++头文件?

Bri*_*van 86 c++ header visual-studio

我从SourceForge(HoboCopy,如果你很好奇)检查了一个C++应用程序的副本并试图编译它.

Visual Studio告诉我它无法找到特定的头文件.我在源代码树中找到了该文件,但是我需要在哪里放置它,以便在编译时找到它?

有特殊目录吗?

Rob*_*use 106

Visual Studio按以下顺序查找标头:

  • 在当前的源目录中.
  • 在项目属性中的Additional Include Directories中(在C++ | General下).
  • 工具选项项目和解决方案VC++ 目录下的Visual Studio C++ 包含目录中.

在您的情况下,将标题所在的目录添加到项目属性中.

  • VS 2010中的预处理器仅在使用引用的包含语法时(例如#include"whatever.h")查看当前目录.使用尖括号(例如#include <whatever.h>)省略当前目录(http://msdn.microsoft.com/en-us/library/36k2cdd4(v=VS.100).aspx) (36认同)
  • 选项"VS>工具>选项>项目和解决方案> VC++目录"现已被删除. (17认同)
  • 我想知道还没有人告诉默认目录.所以,这里是`<Visual Studio的根目录>/VC/include /`.我在上一个用户的工作PC中有一个MSVC,但我使用的是GNU/Linux,并且不想只是为了满足我的好奇心来查看Microsoft®的标题.关于我有什么样的好奇心:我发现MSDN甚至不知道它自己的标题名称!即他们提到了`Iphlpapi.h`,但是这样的文件不存在,它的名字是`iphlpapi.h`,或者是`IPHlpApi.h`(两者都在那里)!大声笑 (8认同)
  • 在Visual Studio 2010及更高版本中,"标准C++目录"不再位于tools-> options下,并且位于全局属性表中:http://blogs.msdn.com/b/vsproject/archive/2009/07/07 /vc-directories.aspx (5认同)
  • 很好的答案,但我必须补充一点,在Visual Studio 2003中,您应该查看"工具|选项| VC++目录"而不是"工具|选项|项目和解决方案| VC++目录". (3认同)

lin*_*bin 15

实际上,在带有Visual Studio 2017社区的Windows 10上,C ++标头路径为:

  1. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include

  2. C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt

的第一包含标准C ++头如<iostream><algorithm>。第二届包含旧的C头文件,例如<stdio.h><string.h>。版本号可能会因您的软件而异。

希望这会有所帮助。

  • 这是对OP最直接的回答。尽管其他答案谈论其他问题,但这应该是公认的答案。 (3认同)

Ada*_*eld 11

如果项目附带Visual Studio项目文件,那么应该已经配置为找到标题.如果没有,则必须通过右键单击项目并选择"属性",单击"C/C++",并将包含包含文件的目录添加到"其他包含目录",将包含文件目录添加到项目设置中.编辑框.


Ste*_*son 6

试图将此作为对Rob Prouse发布的评论添加,但缺乏格式化使其难以理解.

在Visual Studio 2010中,"工具|选项|项目和解决方案| VC++目录"对话框报道称,"VC++目录的编辑工具>选项已被弃用",建议您使用,而反直觉的物业经理.

如果你确实想要更新默认的$(IncludePath),你必须在其中一个XML文件中破解相应的条目:

\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v100\Microsoft.Cpp.Win32.v100.props

要么

\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsets\v100\Microsoft.Cpp.X64.v100.props

(可能不是微软推荐的.)


小智 6

存在一个较新的问题是什么更好地解决了问题,包括路径如何在 Visual Studio 中工作?

在较新版本的 VisualStudio 中揭示了执行此操作的方法

  • 仅在当前项目中(因为这里也设置了问题)以及
  • 默认为每个新项目

第二个是上面史蒂夫·威尔金森的回答所解释的,正如他自己认为的那样,而不是微软会推荐的。

在这里说它的捷径:做它,但在用户目录中做

C:\Users\UserName\AppData\Local\Microsoft\MSBuild\v4.0

在 XML 文件中

Microsoft.Cpp.Win32.user.props

和/或

Microsoft.Cpp.x64.user.props

而不是在 C:\program files - 目录中,预计 Microsoft 的未修改工厂文件将驻留在该目录中。

然后你按照 VisualStudio 的方式来做,一切都是正常的。

欲了解更多信息,为什么这样做一样,看到我的回答

  • 如果标题中只有“C++”,并承认在 32 位路径部分中寻找 64 位路径的错误 (2认同)

Mar*_*kus 5

Visual Studio 2015社区中似乎存在一个错误.对于64位项目,除非在win32位配置" 其他包含文件夹"列表中,否则找不到包含文件夹.

  • 你有这个bug或它的引用的链接吗? (3认同)