如何在Visual Studio中包含路径?

时间:2010-04-20 15:30:57

标签: windows visual-studio include

Visual Studio让我发疯,我怀疑自己做错了什么。

这就是我所做的:很久以前我安装了Visual Studio(Pro '08),我安装了Windows SDK(Win 7 x64),有人通过电子邮件发送给我一个项目,但是无法构建。

总是找不到windows.h。虽然在每个项目的项目设置中包含C:\Program Files\Microsoft SDKs\Windows\v7.0\Include很容易,但我觉得这可能不是正确的方法。有没有办法让Visual Studio全局了解这些文件?
我还尝试在path变量中包含上述目录,但这并没有改变任何内容。

此外,它会在同一目录中随机找到windows.h而不是winresrc.h。

修改
我的机器出了问题。不知何故,Visual Studio认为我的Windows SDK出错了。请参阅已接受的答案和修复评论。

7 个答案:

答案 0 :(得分:59)

自Visual Studio 2012起,@ RichieHindle解决方案现已弃用。由于VS工作室提示现在声明:

  

VC ++目录现在可用作用户属性表,默认情况下添加到所有项目。

要设置包含路径,您现在必须右键单击项目并转到:

Properties/VC++ Directories/General/Include Directories

截图: enter image description here

答案 1 :(得分:23)

要恢复VisualStudio 2013和2015中的工作解决方案:

仅向当前项目添加包含路径

Solution Explorer (VisualStudio主窗口的调色板窗口)中,打开项目的快捷菜单,选择“属性”,然后在“属性页”对话框的左侧窗格中展开配置属性,然后选择VC ++目录。 可以在那里指定其他包含或lib路径。

它是 Stackunderflow user1741137 在上面的答案中所说的。 这也是微软在MSDN中解释的内容。

自动为每个新项目添加包含路径

问题是,杰伊·埃尔斯顿在上面的评论中提出了什么问题,在我看来这是一个非常明显和亟待解决的问题,这里似乎还没有回答。

在VisualStudio中存在常规方法(参见CurlyBrace.com),根据我的经验,这些方法无法正常工作。从某种意义上说,它只运行一次,之后,它不再可扩展,并且可以移除。 Steve Wilkinson在StackOverflow的另一个密切相关的线程中的方法,编辑“程序文件”目录中的Microsoft-Factory-XML文件可能是一个冒险的黑客,因为微软不希望在那里遇到一些外国的东西。 。效果是无法预测的。好吧,我宁愿判断风险不大,但无论如何,至少对其他人来说,让VisualStudio工作的最好方法是难以理解的。

与之相比,工作正常的是编辑相应的User-XML文件:

  

C:\ Users \用户名\应用程序数据\本地\微软\的MSBuild \ V4.0 \ Microsoft.Cpp.Win32.user.props

或/和

  

C:\ Users \用户名\应用程序数据\本地\微软\的MSBuild \ V4.0 \ Microsoft.Cpp.x64.user.props

例如:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets">
  </ImportGroup>
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <IncludePath>C:\any-name\include;$(IncludePath)</IncludePath>
    <LibraryPath>C:\any-name\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup />
  <ItemGroup />
</Project>

目录'C:\ any-name \ include'将被添加到当前的include-path和目录'C:\ any-name \ lib'到库路径。在这里,我们可以在扩展和删除意义上编辑它并删除所有内容,删除标记的全部内容。

它是VisualStudio本身的成果,以常规方式执行 CurlyBrace 所描述的内容。如上所述,它不能在 CurlyBrace-way 以后的nomore中编辑,但是在XML编辑方式中它是。

有关更深入的见解,请参阅Brian Tyler@MSDN-Blog 2009年,但事实上并不是很新鲜,但始终是Microsoft所链接的内容。

答案 2 :(得分:22)

此答案仅适用于Visual Studio的古老版本 - 请参阅现代版本的最新答案。

您可以在此处设置Visual Studio的全局包含路径:

Tools / Options / Projects and Solutions / VC++ Directories / Include files

答案 3 :(得分:2)

要成功使用Windows SDK,您不仅需要为项目提供包含文件,还需要库文件和可执行文件(工具)。 要设置所有这些目录,您应该使用WinSDK Configuration Tool

答案 4 :(得分:2)

如果您只是尝试更改项目的包含路径而不是所有解决方案 然后在Visual Studio 2008中执行此操作: 在解决方案导航器中右键单击项目的名称。从弹出菜单中选择“属性”。在属性页面对话框中,选择Configuration Properties-&gt; C / C ++ / General。单击&#34;其他包含文件&#34;旁边的文本框;标记并浏览相应的目录。选择确定。

令我恼火的是,原问题的一些答案不适用于所提及的Visual Studio版本。

答案 5 :(得分:0)

此答案对于使用非标准IDE(即Qt Creator)的人很有用。

至少有两种非侵入式方法可以通过环境变量将其他 include路径传递到Visual Studio的cl.exe

  • INCLUDE环境变量设置为{<1>}分隔的所有包含路径的列表。它覆盖了所有包括在内的标准库。 不推荐。
  • ;环境变量设置为以下值:CL,其中/I C:\Lib\VulkanMemoryAllocator\src /I C:\Lib\gli /I C:\Lib\gli\external键的每个参数都是附加的 include path

我成功使用了最后一个。

答案 6 :(得分:-4)

您需要确保并拥有以下内容:

#include <windows.h>

而不是这个:

#include "windows.h"

如果这不是问题,请检查RichieHindle's response