UE4.26.2源码版运行时出现LNK1104与MSB3073错误求助
问题描述
从GitHub克隆UE4.26.2源码仓库,执行Setup.bat和GenerateProjectFiles.bat无报错,但在VS2019中以Development Editor | x64配置编译时,出现以下错误:
LINK : fatal error LNK1104: cannot open file 'D:\UE4.26.2\UnrealEngine-4.26.2-release\Engine\Binaries\Win64\UE4Editor.exe'
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(45,5): error MSB3073: The command "....\Build\BatchFiles\Build.bat -Target="UE4Editor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 6.
已尝试调整VS组件(安装.NET桌面开发、C++桌面开发、游戏开发组件,.NET Framework 4.8 SDK及所有4.x目标包)、删除Win64文件夹部分内容后重新构建,问题依旧。
解决步骤
彻底清理编译缓存后重新构建
- 关闭Visual Studio
- 删除以下目录:
Engine/IntermediateEngine/Binaries/Win64- 仓库根目录下的
Saved文件夹
- 以管理员身份运行
GenerateProjectFiles.bat,等待项目文件生成完成 - 重新打开VS2019,选择
Development Editor | x64配置,右键点击UE4项目选择生成(先完成生成再尝试运行)
检查文件权限与路径合法性
- 确认UE4源码所在路径
D:\UE4.26.2\UnrealEngine-4.26.2-release无特殊字符(如空格、中文),路径长度不要超过系统限制 - 右键点击源码根目录,进入属性 -> 安全,确保当前用户拥有完全控制权限
- 临时关闭杀毒软件或防火墙(部分安全软件会拦截编译过程中的文件写入操作)
- 确认UE4源码所在路径
修复VS2019工具链与SDK版本冲突
从错误日志可见,当前VS2019调用了VS2022的MSVC工具链,存在版本不匹配问题:- 打开VS2019安装器,确认安装的MSVC版本为14.29.x(UE4.26.2官方推荐的VS2019工具链版本)
- 若不需要VS2022可直接卸载,或在VS2019中指定专属工具链:
- 进入工具 -> 选项 -> 项目和解决方案 -> VC++目录
- 调整可执行文件、包含文件、库文件的优先级,确保优先指向VS2019的安装路径
- 安装UE4.26.2推荐的Windows SDK版本10.0.19041.0,可通过VS安装器添加该版本SDK
手动执行Build.bat排查细节错误
以管理员身份打开命令提示符,进入UE4源码根目录,执行以下命令:Build\BatchFiles\Build.bat UE4Editor Win64 Development -WaitMutex观察命令行输出的详细错误日志,若存在依赖缺失或其他隐性问题,会直接显示具体信息,针对性解决即可
内容的提问来源于stack exchange,提问作者Tomislav Tomljenović

