Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 更新visual studio 2019后编译非真实引擎4.24.1时出错_C++_Visual Studio_Visual Studio 2019_Unreal Engine4 - Fatal编程技术网

C++ 更新visual studio 2019后编译非真实引擎4.24.1时出错

C++ 更新visual studio 2019后编译非真实引擎4.24.1时出错,c++,visual-studio,visual-studio-2019,unreal-engine4,C++,Visual Studio,Visual Studio 2019,Unreal Engine4,将VisualStudio2019社区从v16.4.5更新到16.5后,我遇到了一个奇怪的错误。即使是新安装的发动机也无法再制造。我得到下面列出的错误。编译所有模块后,生成才会失败: 错误C4800从“ADODB::_Recordset*const”到bool的隐式转换。可能的信息丢失UE4 C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\INCLUDE\comip.h

将VisualStudio2019社区从v16.4.5更新到16.5后,我遇到了一个奇怪的错误。即使是新安装的发动机也无法再制造。我得到下面列出的错误。编译所有模块后,生成才会失败:

错误C4800从“ADODB::_Recordset*const”到bool的隐式转换。可能的信息丢失UE4 C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\INCLUDE\comip.h 311
从“ADODB::_Connection*const”到bool的隐式转换错误C4800。可能的信息丢失UE4 C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\INCLUDE\comip.h 311
错误MSB3075命令“.\..\Build\BatchFiles\Build.bat-Target=“UE4Editor Win64 Development”-Target=“ShaderCompileWorker Win64 Development-Quiet”-WaitMutex-FromMsBuild”已退出,代码为5。请验证您是否有足够的权限运行此命令。UE4 C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.44
我没有更改或更新代码中虚幻引擎方面的任何内容。此错误发生在从Epic的github repo生成UE4.sln的过程中。在构建所有模块之前,构建不会失败(在构建结束时失败)

由于微软没有VS社区安装程序的档案,只有企业版和专业版,我突然被困在这里,因为我无法卸载16.5并重新安装16.4.5(这是我更新之前的最后一个工作版本)

我听说有时将“将警告视为错误”设置为false会有所帮助,但在VisualStudio中我看不到这样做的方法

对此的任何见解都会有所帮助,谢谢

首先对整个项目进行备份(只需将其复制到其他地方)。 然后删除项目目录中的以下文件夹:-
  • 中间的
  • 拯救
您只需删除.vs文件夹即可解决此问题。其余的只是为了快速刷新您的项目


接下来打开Unreal Engine 4,然后在文件选项卡下单击刷新Visual Studio项目。完成后,再次尝试编译。这应该可以解决您的问题。

因此,在从16.4.5到16.5的更新中,VS2019方面发生了一些变化,但UE4的修复程序可以在4.25分支中找到。确认这解决了我的问题

对于那些面临同样问题的人,以下是解决方案

步骤1: 打开[YourEngineSourceDir]\Engine\Plugins\Runtime\Database\ADOSupport\Source\ADOSupport\Private]上的文件ADOSupport.cpp

步骤2: 转到第255行并修改它 从
if(ADORecordSet&&(ADORecordSet->State&ADODB::adStateOpen))
if(ADORecordSet!=nullptr&&(ADORecordSet->State&ADODB::adStateOpen))

步骤3: 转到第328行,并将其从
if(DataBaseConnection&&(DataBaseConnection->State&ADODB::adStateOpen))
修改为
if(DataBaseConnection!=nullptr&&(DataBaseConnection->State&ADODB::adStateOpen))


步骤4:构建解决方案并享受

您应该添加新的代码行,如视频教程: 参数。添加(“/wd4800”);//4800:从“type”到bool的隐式转换。可能的信息


这解决了我的问题。

我也有同样的问题,这解决了它:

文件路径

YOURENGINEPASS\Engine\Source\Programs\UnrealBuildTool\Platform\Windows

要更改的文件

VCToolChain.cs

在第456行之后添加以下行:

Arguments.Add("/wd4800"); // 4800: Implicit conversion from 'type' to bool. Possible information

不,链接断了。链接到其他平台并不酷,因为你无法控制链接。请在这里写下答案的相关部分,因为链接可能会随着时间的推移而改变。