找不到 corecrt.h:$(UniversalCRT_IncludePath) 错误

Posted

技术标签:

【中文标题】找不到 corecrt.h:$(UniversalCRT_IncludePath) 错误【英文标题】:Cannot find corecrt.h: $(UniversalCRT_IncludePath) is wrong 【发布时间】:2016-11-12 09:51:10 【问题描述】:

我刚刚在装有 Windows 10 的笔记本电脑上安装了 Visual Studio 2015。

我已经克隆了一个存储库,其中包含在另一台 PC 上使用相同版本的 Visual Studio(更新 3)创建的解决方案,始终使用 Windows 10。

当我尝试在笔记本电脑上构建解决方案时,出现以下错误:

c:\program files (x86)\microsoft visual studio 14.0\vc\include\crtdefs.h(10): fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory

在this page 中,我读到我必须将$(UniversalCRT_IncludePath) 添加到我的包含路径中,但即使在这种情况下,我也会遇到同样的错误。

我查过了,$(UniversalCRT_IncludePath) 指的是这条路径:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt

我的笔记本电脑上缺少此路径。相反,我有这个:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt

所以看来window版本是不一样的。可能这是真的,因为我的笔记本电脑上没有安装 1511 windows 升级,而在另一台电脑上都安装正确。

我的问题是如何在两台电脑中引用corecrt.h 文件而不弄乱路径。我想避免硬链接这些路径,因为它们依赖于 pc。而且我不明白为什么在我的笔记本电脑中路径是错误的,因为它应该依赖于系统而不是连接到解决方案中。

我该如何解决这个问题?我知道我可以将我的笔记本电脑更新到相同的 Windows 版本,但出于多种原因我想避免它。

-- 编辑

我注意到我有这条路径:

C:\Program Files (x86)\Windows Kits\8.1\Include\10.0.10240.0\ucrt

它具有相同的10.0.10240.0 版本但与另一个windows kit 版本相关,所以在这种情况下可能存在一些问题。在我的笔记本电脑上,我还安装了 Visual Studio 2013,所以它可能来自它,但我无法删除它,因为我正在使用 Visual Studio 2013 维护另一个项目,我还无法删除它。

也许在 Visual Studio 2015 文件夹中,我可以在某些 .bat 文件(vcvarsall.bat 或类似文件)中明确设置 $(UniversalCRT_IncludePath),但我不知道哪个文件以及在哪个位置。

【问题讨论】:

FWIW,我已经损坏了 Windows SDK。值得检查文件是否存在。 【参考方案1】:

对于 Visual Studio 2017,我必须:

    运行 Visual Studio 安装程序。 选择修改按钮。 转到“单个组件”选项卡。 向下滚动到“编译器、构建工具和运行时”。 勾选“Windows 通用 CRT SDK”。 安装。

【讨论】:

确认此问题已修复,并且是 2017 Enterprise 的最佳选择。 如果您删除了安装 exe,只需进入添加/删除程序 > 右键单击​​ Microsoft Visual Studio > 修改。 parsley72 解决方案也适用于 Visual Studio 2017 的社区版。所以我想它对所有版本都是必不可少的。顺便说一句,CRT 的意思是 C RunTime。 “Windows 通用 CRT SDK”(上面的第 5 项)和在各个组件“SDK、库和框架”下列出的“Windows 通用 C 运行时”有什么区别? @ThatsRightJack:需要SDK来编译程序(包含.h文件和导入库),运行时只包含运行程序所需的DLL。【参考方案2】:

您可能已经解决了这个问题,但如果其他人出现,我按照提示 here 解决了这个问题。

基本设置如下系统环境变量:

INCLUDE="C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"
LIB="C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64"

可能有更好的最佳实践方法来做这件事,但是为了超级快速地修复它,这很有效。

【讨论】:

【参考方案3】:

我遇到了同样的问题。我在这里尝试了答案。它没有 100% 有效。 我发现 VC++ 2015 工具集(x86、x64)对于 2017 社区版(我现在正在使用)是必需的,但没有添加任何包含或 lib 链接。

最好的问候。

【讨论】:

【参考方案4】:

安装 Visual Studio 时可能缺少某些内容。 您可以检查是否忘记选择 VC++ 工具集。

    Control Panel -> All Control Panel Items -> Programs and Features -> Visual studio 2015 点击change/uninstall 选择VC++2015 toolset(x86,x64) 并安装。

对于 Visual Studio Community 2017 RC(15.0.26206.0),可选工具的名称是VC++ 2017 v141 toolset(x86,x64)

【讨论】:

不要忘记将计算机连接到网络【参考方案5】:

尝试检查项目属性(菜单项目 > 属性)。 在 Configuration Properties > General 下,然后检查 Platform Toolset 和 Windows SDK 版本(如果使用 Platform Toolset > VS2015) 在设置 Platform Toolset = VS2017 和 Windows SDK Version = 10.x.x 后,它对我有用。

【讨论】:

【参考方案6】:

错误的原因可能是因为您没有更新版本的 windows 10 sdk

你也可以自主下载安装window 10 sdk,

使用此链接windows 10 sdk,并将其添加到您的系统路径中

希望对你有帮助。

【讨论】:

【参考方案7】:

您在项目中选择的Windows SDK未安装

安装您想要的 SDK 或选择已安装的 SDK 之一(注意:选择 选项将默认为 8.1,它不是由在 VS 2017+ 中默认)

要安装 Windows SDK,请运行安装程序并转到各个组件并滚动到最底部:

【讨论】:

【参考方案8】:

对于Visual Studio 2015 Enterprise,我用类似parsley72的方法解决了这个问题:

1. Run the Visual Studio Installer;
2. Select Modify button;
3. Go to "Windows and Web Development";
4. Tick "Universal Windows App Development Tools";
5. Install.

【讨论】:

【参考方案9】:

对我来说有助于 Visual Studio 中的此设置:

在项目属性 -> VC++ 目录 -> 包含目录 -> 打开以进行编辑。 选中复选框从父级或项目默认值继承

【讨论】:

【参考方案10】:

我刚刚在 Windows 上编译 PyTorch 并安装 Windows Universal CRT SDK 时遇到此错误,但没有解决它。摆弄之后似乎有两个原因:

    确保运行 vcvarsall.bat。当你启动 VS2017 x64 Native Command Prompt 时,它会运行这个 bat 文件。 将 vcvars_ver 设置为您机器上的正确版本。要查找您拥有的版本,请转至%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\。在此文件夹中,您将看到诸如14.13.26128 之类的文件夹。所以你将 vcvars_ver 设置为 14.13。

我的批处理文件中的以下片段显示了以上两个步骤:

set "VS150COMNTOOLS=%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build"
call "%VS150COMNTOOLS%\vcvarsall.bat" x64 -vcvars_ver=14.13

【讨论】:

非常感谢!这是拯救我一天的答案!实际上我得到了一个关于通过 Pip 安装 Python 包的错误,错误是找不到文件“vcruntime.h”。我尝试了上面的几种解决方案,但这是对我有用的解决方案!【参考方案11】:

将较旧的 Windows SDK(例如 8.1 版/通用)添加到您的计算机(如 parsley72 所述)或 re-target Project(s) to use one of the Windows SDK(s) installed on your computer。

我刚刚在 VS2017 中遇到了这个问题,并且重新定位有效。虽然我还在等待targeting a newer Windows SDK version has any ill effects是否的答案。

【讨论】:

【参考方案12】:

我通过接下来的 3 步解决了这个错误。

1) 所有文件来自:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x86
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86

复制到:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\lib\x86

2) 所有文件来自:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64

复制到:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\lib\x64

3) 所有文件来自:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt

复制到:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include

然后我重建我的项目并且一切正常

【讨论】:

【参考方案13】:

重新安装windows 10 sdk,如果你缺少windows sdk或者如果它的内容改变了这个错误会弹出,安装wdk后发生在我身上

【讨论】:

【参考方案14】:
I find Reason that : Windows Registry

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots]
"KitsRoot10"="C:\\Program Files\\Windows Kits\\10\\"

but in Actually 
"KitsRoot10"="C:\\Program Files (x86)\\Windows Kits\\10\\"
"AppVerifier64BitAutomationRoot"="C:\\Program Files\\Application Verifier\\"
"KitsRoot81"="C:\\Program Files (x86)\\Windows Kits\\8.1\\"

见:Where is WindowsSDK_IncludePath defined?

【讨论】:

【参考方案15】:

我没有使用 VC++ 的经验,但我必须为 python 项目构建 ta-lib。由于我不想在 VC Studio 中接触任何东西,但我在 Unix 下使用常规 C 编程有经验,所以我采取了直接在 Makefile 中添加包含路径的方法;例如:

INCPATH = -I"........\include" -I"........\src\ta_common" -I"........ ..\src\ta_abstract" -I"........\src\ta_abstract\tables" -I"........\src\ta_abstract\frames" -I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include"

子目录下有多个 Makefile,因此我不得不对每个 Makefile 进行更改,但它对我来说没问题。

【讨论】:

以上是关于找不到 corecrt.h:$(UniversalCRT_IncludePath) 错误的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Visual Studio Community 2019:致命错误 C1083:无法打开包含文件:'corecrt.h':没有这样的文件或目录

带有nestjs的Angular-universal:错误:找不到模块'./drivers/node-mongodb-native/connection'

clangTidy linting corecrt_wstdio.h

使用 Angular Universal 在服务器端运行时找不到模块环境

dotnet core + Angular Universal + docker => 由于错误,预渲染失败:错误:找不到模块

VS 2015 C++ Cannot find corecrt.h and cannot open file ‘ucrtd.lib‘