找不到 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 之一(注意:选择
要安装 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‘