我有一个Visual Studio C++项目,在最近将Visual Studio 2022从版本17.5更新到版本17.6后,编译在一开始就停止了,并显示以下错误:
就我所知,这与预编译头文件
如果我删除强制包含,则错误会改变为:
1>------ Rebuild All started: Project: MRPch, Configuration: Debug x64 ------
1>Scanning sources for module dependencies...
1>std.compat.ixx
1>std.ixx
1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\modules\std.compat.ixx : fatal error C1083: Cannot open include file: 'MRPch.h': No such file or directory
1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\modules\std.ixx : fatal error C1083: Cannot open include file: 'MRPch.h': No such file or directory
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(486,5): warning MSB8074: Cannot read Module Dependencies file C:\Work\MeshInspector\source\TempOutput\MRPch\x64\Debug\std.ixx.module.json: Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''. The build order might be incorrect.
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(486,5): warning MSB8074: Cannot read Module Dependencies file C:\Work\MeshInspector\source\TempOutput\MRPch\x64\Debug\std.compat.ixx.module.json: Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''. The build order might be incorrect.
就我所知,这与预编译头文件
MRPch.h
有关,该文件通过编译器选项/FI"MRPch.h"
强制包含在所有源文件中。如果我删除强制包含,则错误会改变为:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\modules\std.ixx(147,1): fatal error C1010: unexpected end of file while looking for precompiled header.
我的项目中既没有std.compat.ixx
也没有std.ixx
,但我发现错误与/std:c++latest
命令行选项有关,该选项启用了最新的语言特性。
我查看了Visual Studio 2022版本17.6发布说明,但没有看到任何与预编译头文件相关的内容。它们是否不再与最新的C++标准兼容?