Visual Studio 2017 年标准错误 headers

Visual Studio 2017 errors on standard headers

我刚刚升级到 Visual Studio 2017 社区版,我无法加载标准 header 文件。我从各种 header 文件中收到 507 错误。以下是一些片段:

部分错误:

Severity    Code    Description Project File    Line    Suppression State
Error (active)  E1696   cannot open source file "errno.h"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cerrno  7   
Error (active)  E1696   cannot open source file "float.h"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cfloat  7   
Error (active)  E0282   the global scope has no "acosf" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cmath   629 
Error (active)  E0282   the global scope has no "asinf" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cmath   629 
Error (active)  E0282   the global scope has no "atanf" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cmath   630 
Error (active)  E0282   the global scope has no "atan2f"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cmath   630 
Error (active)  E0282   the global scope has no "ceilf" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cmath   630 
Error (active)  E0282   the global scope has no "cosf"  RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cmath   631 
Error (active)  E0282   the global scope has no "coshf" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cmath   631 
Error (active)  E0282   the global scope has no "swprintf"  RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  21  
Error (active)  E0282   the global scope has no "swscanf"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  21  
Error (active)  E0282   the global scope has no "ungetwc"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  21  
Error (active)  E0282   the global scope has no "vfwprintf" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  22  
Error (active)  E0282   the global scope has no "vswprintf" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  22  
Error (active)  E0282   the global scope has no "vwprintf"  RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  22  
Error (active)  E0282   the global scope has no "wcrtomb"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  23  
Error (active)  E0282   the global scope has no "wprintf"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  23  
Error (active)  E0282   the global scope has no "wscanf"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  23  
Error (active)  E0282   the global scope has no "wcsrtombs" RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  24  
Error (active)  E0282   the global scope has no "wcstol"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  24  
Error (active)  E0282   the global scope has no "wcscat"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  24  
Error (active)  E0282   the global scope has no "wcschr"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  25  
Error (active)  E0282   the global scope has no "wcscmp"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  25  
Error (active)  E0282   the global scope has no "wcscoll"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  25  
Error (active)  E0282   the global scope has no "wcscpy"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  26  
Error (active)  E0282   the global scope has no "wcscspn"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  26  
Error (active)  E0282   the global scope has no "wcslen"    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  26  
Error (active)  E0282   the global scope has no "wcsncat"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  27  
Error (active)  E0282   the global scope has no "wcsncmp"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  27  
Error (active)  E0282   the global scope has no "wcsncpy"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  27  
Error (active)  E0282   the global scope has no "wcspbrk"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\cwchar  28  
Error (active)  E0282   the global scope has no "wcsrchr"   RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools
Error (active)  E0260   explicit type is missing ('int' assumed)    RPGWorld    c:\Program Files (x86)\Microsoft Visual Studio17\Community\VC\Tools\MSVC.10.25017\include\xtgmath.h   212 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\Graphics\Glsl.inl    40  
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\Graphics\Texture.hpp 159 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\Graphics\VertexArray.hpp 64  
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\Graphics\VertexArray.hpp 72  
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\Graphics\VertexArray.hpp 88  
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\Graphics\VertexArray.hpp 104 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\Graphics\VertexArray.hpp 129 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    58  
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    332 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    345 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    365 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    387 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    387 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    399 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    413 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    413 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    427 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    427 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    456 
Error (active)  E0757   variable "size_t" is not a type name    RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\packages\sfml-system.2.4.0.0\build\native\include\SFML\System\String.hpp    456 
Error (active)  E0020   identifier "rand" is undefined  RPGWorld    c:\Users\Fazil\Documents\Visual Studio 2017\Projects\Local\RPGWorld\RPGWorld\Blocks.cpp 23  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  
Error   C1083   Cannot open include file: 'corecrt.h': No such file or directory    RPGWorld    c:\program files (x86)\microsoft visual studio17\community\vc\tools\msvc.10.25017\include\crtdefs.h   10  

我在使用 Visual Studio 2015 社区版时从未遇到过这个问题。我是否缺少安装程序中的某些组件?任何帮助,将不胜感激。谢谢!

我通过安装 Windows Universal CRT SDK 组件消除了错误,该组件增加了对遗留 Windows SDK 的支持。您可以使用 Visual Studio 安装程序安装它:

如果问题依旧,你应该更换Visual Studio项目中的Target SDK:查看WindowsSDK版本是否为10.0.15063.0。

在:项目 -> 属性 -> 常规 -> Windows SDK 版本 -> select 10.0.15063.0.

然后errno.h和其他标准文件将被找到并编译。

如果以上回答没有解决问题,请检查WindowsSDK版本是否为10.0.15063.0.

项目 -> 属性 -> 常规 -> Windows SDK 版本 -> select 10.0.15063.0

在此之后重建解决方案。

我将 VS2017 从 15.2 版本升级到 15.8。对于 15.8 版,发生了以下情况:

项目 -> 属性 -> 常规 -> Windows SDK 版本 -> select 10.0.15063.0 不再适合我!我不得不将其更改为 10.0.17134.0,然后重新构建所有内容。升级后,没有进行此更改,我遇到了相同的头文件错误。

我会提交这个作为对其他答案之一的评论,但我还没有足够的声誉。

如果有人仍然坚持这个,我找到的最简单的解决方案是 "Retarget Solution"。 在我的例子中,项目是用 SDK 8.1 构建的,升级到 VS2017 带来了 SDK 10.0.xxx。

重定向解决方案: 项目->重定向解决方案->"Select whichever SDK you have installed"->确定

从那里您可以简单地 build/debug 您的解决方案。希望对你有帮助

如果您的单元测试项目的 C++ 版本与您要测试的项目不同,也可能会出现此问题。

示例:

  • 明确启用 C++ 17 的 EXE
  • 将 C++ 版本设置为“默认”的单元测试

解决方案:将单元测试也更改为 C++17。

如果安装 Windows 通用 CRT SDK 如已接受的答案中所述没有帮助。尝试检查一下:

如果目录 “C:\Program Files\Windows Kits”在您的系统上存在,请确保它包含“10/Include”和“10/Lib”子目录。如果没有,创建硬链接,选择出现在你的“C:\Program Files (x86)\Windows Kits

解释: 正如您从 C:\Program Files (x86)\Windows Kits\DesignTime\CommonConfiguration\Neutral\uCRT.props 中看到的,路径“C:\Program Files\Windows Kits”优于“C:\Program Files (x86)\Windows Kits”如果它存在!