【发布时间】:2017-04-09 11:40:33
【问题描述】:
我将 Visual Studio 从 Community 2015 升级到 Community 2017。现在我在构建时收到错误消息,提示“错误(活动)E1696 无法打开源文件“stdio.h””引用的行如下所示:
#include <stdio.h>
如果我创建一个新项目,则会找到 stdio.h。
所以我查看了项目配置属性->VC++ 目录,我看到了这个:
Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
所以似乎需要设置 VC_IncludePath 但我找不到任何设置它的地方。请注意,我找不到宏,可能是因为我使用的是 Visual Studio 2017 的免费版本。
有人可以提出建议吗?
【问题讨论】:
-
只有尽可能多地告诉我们,您才能获得帮助,我们无法从这里看到您的屏幕。同一个对话框还显示带有目录列表的“评估值”。你看到了什么?您应该在该列表中看到 ucrt 子目录,该目录是否真的存在于您的磁盘上?
-
如果我在包含目录上使用编辑,我会看到“评估值”。 (我没有注意到)。我看到它是“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\include”,我会在调查后回复您。
-
列表中没有 ucrt。我检查了“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\include”,没有 stdio.h。在我的计算机上,我确实在名为“C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\ucrt”的目录中看到了 stdio.h。所以,正如我最初所说,我的问题是我看不到如何设置宏 VC_IncludePath。
-
请记住,当我尝试打开 2015 年创建的解决方案但我使用的是 2017 时会出现问题。VS 2017 会将解决方案从 2015 年转换为 2017 年,这就是导致问题的原因。另请注意,如果我使用 2017 创建新解决方案,则会找到标准 .h。我可以通过在 2017 年重新创建所有 2015 年的解决方案来解决这个问题,但我有很多 2015 年的解决方案,我不想重新创建每一个。请注意,我也在使用 Community 2017,这可能是尚未发现此 VS 问题的原因。
-
@Hans Passant,我确实在目录列表中找到了“C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt”。但我没有名为“C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt”的目录(即,Include 没有 10.0.10240,它有“10.0.14393.0”而是。这很奇怪......我将“10.0.14393.0”复制到“10.0.10240.0”但仍然找不到标准包含(例如stdio.h)。
标签: visual-studio