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出错了。请参阅已接受的答案和修复评论。
答案 0 :(得分:59)
VC ++目录现在可用作用户属性表,默认情况下添加到所有项目。
要设置包含路径,您现在必须右键单击项目并转到:
Properties/VC++ Directories/General/Include Directories
答案 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)