编译NVIDIA焦散分支Unreal Engine后缺失dxgi.lib的技术求助
解决Unreal Engine NvRTX_Caustics分支编译时dxgi.lib缺失的问题
我之前帮开发者排查过不少UE4第三方库依赖的问题,针对你遇到的编译警告以及启动时cannot open input file 'ThirdParty\Windows\DirectX\Lib\x64\dxgi.lib'的错误,给你几个精准的解决方案:
方案一:安装并配置正确版本的DirectX SDK
UE4(尤其是较旧分支)依赖DirectX SDK June 2010版本,这个版本包含了编译所需的dxgi.lib文件:
- 如果你还没安装这个SDK,先下载安装它;
- 打开VS2017,进入
工具 > 选项 > 项目和解决方案 > VC++目录,在库文件列表中添加SDK的x64库路径,默认路径是:C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64
方案二:修复UE4 DX11模块的库引用配置
警告信息已经提示了问题根源——库路径未完全限定,我们可以修改DX11模块的构建文件来解决:
- 找到UE4引擎目录下的
Engine/Source/Runtime/DX11/DX11.Build.cs文件; - 打开后,在文件中添加DirectX SDK的系统库路径配置,替换或补充原有内容:
using System; using System.IO; using UnrealBuildTool; public class DX11 : ModuleRules { public DX11(ReadOnlyTargetRules Target) : base(Target) { // 其他原有代码... // 添加这行来指定DirectX SDK的库路径 PublicSystemLibraryPaths.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Microsoft DirectX SDK (June 2010)", "Lib", "x64")); // 保留原有的库引用(无需写完整路径) PublicAdditionalLibraries.Add("dxgi.lib"); } } - 保存文件后,清理UE4的编译缓存,再重新编译项目。
方案三:手动复制dxgi.lib到指定路径
如果上面的配置方法无效,可以直接手动补全缺失的库文件:
- 从DirectX SDK的
Lib\x64目录中找到dxgi.lib; - 在UE4项目的
ThirdParty/Windows/DirectX/Lib/x64目录下(如果目录不存在就手动创建),粘贴这个文件。
额外注意事项
- 确认VS2017的平台工具集设置正确:右键UE4项目,进入
属性 > 常规 > 平台工具集,选择Visual Studio 2017 (v141); - 编译前清理缓存:可以运行UE4引擎目录下的
Engine/Binaries/DotNET/UnrealBuildTool.exe -clean命令,彻底清理旧的编译中间文件,避免缓存干扰。
内容的提问来源于stack exchange,提问作者Bachalo
相关产品推荐
相关产品推荐

