![](/img/trans.png)
[英]Qt won't run example application after I installed Visual Studio 2019 and Unreal Engine
[英]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文件夾即可解決問題。 其余的只是為了快速刷新您的項目。
接下來打開 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 的隱式轉換。 可能的信息
那解決了我的問題。
我有同樣的問題,這解決了它:
文件路徑
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.