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

时间:2016-07-10 08:46:27

标签: visual-studio-2015 include include-path

我刚刚使用Windows 10安装了Visual Studio 2015。

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

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

obj-m := file.o 

CROSS_COMPILE=arm-linux-
ARCH=arm 
KERNELDIR=/lib/modules/2.6.32.2/build
PWD       := $(shell pwd)

arm_modules:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modules
    echo "bulding module for arm architecture:"


clean:
    rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

.PHONY: clean

this page我已经读过,我必须将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 添加到我的包含路径中,但即使在这种情况下,我也会遇到相同的错误。

我已经检查过,$(UniversalCRT_IncludePath)指的是这条路:

$(UniversalCRT_IncludePath)

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

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

所以似乎窗口版本不同。可能这是真的,因为在我的笔记本电脑上我没有安装1511 windows updgrade,而在另一台电脑上都安装正确。

我的问题是如何在不弄乱路径的情况下在两台电脑中引用C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt 文件。我想避免硬连接这些路径,因为它们依赖于pc。而且我不明白为什么在我的笔记本电脑中路径是错误的,因为它应该是系统相关的而不是连接到解决方案。

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

- 编辑

我注意到我有这条道路:

corecrt.h

它具有相同的C:\Program Files (x86)\Windows Kits\8.1\Include\10.0.10240.0\ucrt 版本但与另一个Windows工具包版本相关,因此在这种情况下可能存在一些问题。在我的笔记本电脑上我也是Visual Studio 2013,所以也许它可以来自它,但我无法删除它,因为我正在使用Visual Studio 2013维护另一个项目,我还无法删除它。

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

14 个答案:

答案 0 :(得分:100)

对于Visual Studio 2017,我必须:

  1. 运行Visual Studio Installer。
  2. 选择修改按钮。
  3. 转到"个别组件"标签。
  4. 向下滚动到"编译器,构建工具和运行时"。
  5. Tick" Windows Universal CRT SDK"。
  6. 安装。

答案 1 :(得分:24)

你可能已经解决了这个问题,但如果其他人出现,我按照提示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"

可能有一种更好的最佳实践方法,但是为了超级快速地修复它,这非常有用。

答案 2 :(得分:6)

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

最好的问候。

答案 3 :(得分:5)

安装Visual Studio时可能会遗漏一些东西。 您可以检查是否忘记选择VC ++工具集。

  1. Control Panel - > All Control Panel Items - > Programs and Features - > Visual studio 2015
  2. 点击change/uninstall
  3. 选择VC++2015 toolset(x86,x64)并安装。
  4. 对于Visual Studio Community 2017 RC(15.0.26206.0),可选工具的名称为VC++ 2017 v141 toolset(x86,x64)

    `VC++ 2017 v141 toolset(x86,x64)

答案 4 :(得分:5)

尝试检查项目属性(菜单项目>属性)。 在配置属性>下常规,然后检查平台工具集和Windows SDK版本(如果使用平台工具集> VS2015) 设置Platform Toolset = VS2017和Windows SDK Version = 10.x.x后,它对我有用。

答案 5 :(得分:1)

对我来说,在Visual Studio中帮助此设置:

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

答案 6 :(得分:1)

对于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.

答案 7 :(得分:1)

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

您还可以自动下载并安装window 10 sdk,

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

  

希望有帮助。

答案 8 :(得分:1)

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

Visual Studio project setting windows SDK version 8.1

要么安装所需的SDK,要么选择已安装的SDK之一(注意:选择 <从父级继承> 选项将默认为 8.1 ,但不会安装VS 2017+中的默认设置)

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

Visual Studio installer - individual components - windows 8.1 SDK

答案 9 :(得分:0)

将较旧的Windows SDK(例如版本8.1 / Universal)添加到您的计算机(如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的答案。

答案 10 :(得分:0)

我没有VC ++的经验,但我必须为python项目构建ta-lib。由于我不想在VC Studio中触摸任何东西,但我在Unix下经历过常规C编程,我采用了直接在Makefile中添加include路径的方法; e.g:

INCPATH = -I&#34; .......... \ include&#34; -I&#34; .......... \ SRC \ ta_common&#34; -I&#34; .......... \ SRC \ ta_abstract&#34; -I&#34; .......... \ SRC \ ta_abstract \表&#34; -I&#34; .......... \ SRC \ ta_abstract \帧&#34; -I&#34; C:\ Program Files(x86)\ Windows Kits \ 10 \ Include \ 10.0.10150.0 \ ucrt&#34; -I&#34; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ include&#34;

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

答案 11 :(得分:0)

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

  1. 确保您运行vcvarsall.bat。当您启动VS2017 x64本机命令提示符时,它会运行此bat文件。
  2. 将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

答案 12 :(得分:0)

我将在接下来的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 :(得分:0)

重新安装Windows 10 sdk,如果您缺少Windows sdk或如果其内容更改,则会弹出此错误,这是我在安装wdk之后发生的