簡體   English   中英

更新 Visual Studio 2019 后編譯虛幻引擎 4.24.1 時出錯

[英]Error compiling Unreal Engine 4.24.1 after updating visual studio 2019

將 Visual Studio 2019 社區從 v16.4.5 更新到 16.5 后,我遇到了一個奇怪的錯誤。 即使是全新安裝的引擎也不會再構建。 我收到下面列出的錯誤。 在編譯所有模塊結束之前,構建不會失敗:

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 的構建過程中,該文件來自 Epic 的 github 存儲庫。 在構建所有模塊之前,構建不會失敗(在構建結束時失敗)。

看到 Microsoft 沒有 VS 社區的安裝程序存檔,只有 Enterprise 和 Pro,我有點突然卡在這里,因為我不能卸載 16.5 並重新安裝 16.4.5(這是我使用的最后一個工作版本)更新前)。

我聽說有時將“將警告視為錯誤”設置為 false 會有所幫助,但我在 Visual Studio 中看不到這樣做的方法。

對此的任何見解都會有所幫助,謝謝!

因此,在從 16.4.5 到 16.5 的更新中,VS2019 方面發生了一些變化,但可以在 4.25 分支的此提交中找到 UE4 的修復程序。 確認這解決了我的問題!

首先備份整個項目(只需將其復制到其他地方)。

然后刪除項目目錄中的以下文件夾:-

  • .vs
  • 中間的
  • 已保存

您只需要刪除.vs文件夾即可解決問題。 其余的只是為了快速刷新您的項目。

接下來打開 Unreal Engine 4,然后在File選項卡下單擊Refresh Visual Studio Project 完成后再次嘗試編譯。 這應該可以解決您的問題。

對於那些面臨同樣問題的人,這里是解決方案。

步驟 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 步:構建解決方案並享受!

您應該添加新的代碼行,如視頻教程所示:Arguments.Add("/wd4800"); // 4800: 從“type”到 bool 的隱式轉換。 可能的信息

https://youtu.be/KXIv4y51fyw

那解決了我的問題。

我有同樣的問題,這解決了它:

文件路徑

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

要更改的文件

VCToolChain.cs

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM