visual studio 2022 头文件和库目录问题造成的编译失败

博客讲述了在使用Visual Studio 2022时遇到编译错误,无法找到new.h头文件的问题。问题源于VS2022 SDK路径与VS2019的不同。提供了三种解决方案:修改Microsoft.Cpp.WindowsSDK.props文件中的注册表值,手动创建缺失的SDK目录并复制文件,或直接在项目配置中添加现有SDK目录。
摘要由CSDN通过智能技术生成

新安装visual studio 2022后,在一个简单工程上编译测试中,遇到标准头文件(new.h)报错,详情如下:

已启动生成…
1>------ 已启动生成: 项目: MFCApplication1, 配置: Debug x64 ------
1>pch.cpp
1>D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.31.31103\atlmfc\include\afx.h(62,11): 
fatal error C1083: 无法打开包括文件: “new.h”: No such file or directory
1>已完成生成项目“MFCApplication1.vcxproj”的操作 - 失败。

经验证和对比visual studio 2019,发现visual studio 2022以下sdk路径有一个明显差异。详情如下所示。

visual studio 2019 安装后的默认路径如下

而 visual studio 2022路径如下

库目录也一样不同,visual studio 2019如下所示

 而visual studio 2022如下所示。

在电脑上查看,visual studio 2022中所描述的目录实际并不存在。真正存在的目录和visual studio 2019相同。要解决编译错误,可以有以下的解决办法。

第一种方法(推荐

vs2022的安装路径

C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Microsoft\VC\v170\

有一个 Microsoft.Cpp.WindowsSDK.props 文件,其中描述了 KitsRoot10 注册表项。

参考下面所描述,可将visual studio 2022中的描述项修改为和visual studio 2019相同。

Microsoft.Cpp.WindowsSDK.props 其中这两行描述了sdk的注册表值

<UniversalCRTSdkDir_10 Condition="'$(UniversalCRTSdkDir_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots@KitsRoot10)</UniversalCRTSdkDir_10>
<UniversalCRTSdkDir_10 Condition="'$(UniversalCRTSdkDir_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots@KitsRoot10)</UniversalCRTSdkDir_10>

通过注册表 命令regedit 进入下面界面,修改KitsRoot10属性值为如图所示。然后重启VS2022既可。

第二种方法

按visual studio 2022所描述的路径,手动创建好对应两个目录

C:\Program Files\Windows Kits\10\Include\10.0.19041.0\ucrt

C:\Program Files\Windows Kits\10\lib\10.0.19041.0\ucrt\x64

然后将

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

C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64

对应全部文件复制过去

第三种方法

分别将实际存在的两个目录加载到项目配置中;

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

C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64

如图所示

希望这几个方法对读者有帮助。

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值