背景
UE5.0版本采用VS2019是可以的,但是UE5.1依赖VS的最低版本都需要到VS2022
参考
UE5.1 源码下载编译过程记录_宁静致远的技术博客_51CTO博客
执行Setup.bat
修改Setup.bat文件,然后执行
理由:设置缓存避免下载失败以后,重新下载,设置多线程下载加快速度
set PROMPT_ARGUMENT=--prompt --cache=f:\cache --threads=10
--http-timeout-multiplier=60这个参数在5.0版本还没有添加,因此需要删除,5.1版本以后才有
问题找不到文件UEPrereqSetup_x64.exe
其他源码版本拷贝过去
执行GenerateProjectFiles.bat
问题It looks like you're missing some files
GenerateProjectFiles ERROR: It looks like you're missing some files that are required in order to generate projects. Please check that you've downloaded and unpacked the engine source code, binaries, content and third-party dependencies before running this script.
出现上述问题是屏蔽掉了--exclude=Linux --exclude=IOS --exclude=HTML5 --exclude=Android 等第三方库,因此,将上述限制去掉。
问题
VS2022能否打开VS2019的源码工程编译
编译出现如下提示错误
错误 C4834 放弃具有 "nodiscard" 属性的函数的返回值
错误 MSB3073 命令“..\..\Build\BatchFiles\Rebuild.bat -Target="UnrealEditor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild”已退出,代码为 -1
解决方案
出错文件
Engine\Plugins\Runtime\Steam\SteamVR\Source\SteamVRInputDevice\Private\SteamVRInputDeviceFunctionLibrary.cpp
代码头添加
#pragma warning(disable : 4834)
最终效果
#include "SteamVRInputDeviceFunctionLibrary.h"
//#if STEAMVRCONTROLLER_SUPPORTED_PLATFORMS
#include "openvr.h"
#include "GameFramework/WorldSettings.h"
#include "HAL/FileManagerGeneric.h"
#include "SteamVRInputDevice.h"
using namespace vr;
//#endif // STEAMVRCONTROLLER_SUPPORTED_PLATFORMS
#pragma warning(disable : 4834)