首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新visual studio 2019后编译虚幻引擎4.24.1时出错

更新visual studio 2019后编译虚幻引擎4.24.1时出错
EN

Stack Overflow用户
提问于 2020-03-31 12:31:46
回答 5查看 6.7K关注 0票数 2

在将Visual Studio 2019社区从v16.4.5更新到16.5之后,我遇到了一个奇怪的错误。即使是全新安装的引擎也不会再构建。我得到了下面列出的错误。在编译完所有模块之前,构建不会失败:

代码语言:javascript
复制
Error C4800 Implicit conversion from 'ADODB::_Recordset *const ' to bool. Possible information loss UE4 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\INCLUDE\comip.h 311

Error C4800 Implicit conversion from 'ADODB::_Connection *const ' to bool. Possible information loss UE4 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\INCLUDE\comip.h 311

Error MSB3075 The command "..\..\Build\BatchFiles\Build.bat -Target="UE4Editor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 5. Please verify that you have sufficient rights to run this command. UE4 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets 44

我没有改变或更新任何虚幻引擎方面的代码。这个错误发生在UE4.sln的构建过程中,UE4.sln来源于Epic的github repo。在构建所有模块之前,构建不会失败(它在构建结束时失败)。

由于微软没有VS社区的安装程序存档,只有Enterprise和Pro,我突然被困在这里,因为我不能卸载16.5并重新安装16.4.5 (这是我在更新之前使用的最后一个工作版本)。

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

任何对此的见解都将是有帮助的,谢谢!

EN

回答 5

Stack Overflow用户

发布于 2020-04-01 10:02:13

所以,在从16.4.5到16.5的更新中,VS2019端发生了一些变化,但是UE4的修复可以在4.25分支上的this commit中找到。确认这解决了我的问题!

票数 4
EN

Stack Overflow用户

发布于 2020-04-01 03:06:45

首先备份整个项目(只需将其复制到其他地方)。

然后删除项目目录中的以下文件夹:-

  • .vs
  • Intermediate
  • Saved

您只需删除.vs文件夹即可解决此问题。其余的只是为了快速刷新您的项目。

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

票数 0
EN

Stack Overflow用户

发布于 2020-05-02 02:54:28

对于那些面临同样问题的人,这里有解决方案。

步骤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:构建解决方案,尽情享受!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60943495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档