Win64平台编译UE4源码报错找不到wininet.lib、dbghelp.lib
UE4.27 Win64源码编译缺失wininet.lib、dbghelp.lib修复方案
问题本质
两个链接报错均由本地Windows SDK组件安装不全导致,和UE4源码逻辑、编译配置无关:
- 编译目标为Win64时,编译系统只会检索Windows SDK路径下
lib/x64目录的64位依赖库,x86目录下的32位版本wininet.lib不会被识别,因此触发文件找不到报错 dbghelp.lib属于Windows SDK的调试工具附属组件,默认安装SDK时不会自动勾选安装,因此你只能在debuggers目录找到运行时用的dbghelp.dll,找不到编译链接阶段需要的lib文件
修复步骤
- 打开控制面板-程序和功能,找到本地安装的对应版本Windows SDK(UE4.27适配Windows 10 SDK 18362/19041版本,不建议使用过高版本的Win11 SDK避免兼容问题),右键选择「更改」
- 在弹出的SDK安装向导中选择「Change」进入功能勾选页,勾选以下两个缺失的组件:
- Windows SDK for Desktop C++ x64:安装完成后会自动在SDK的
lib/x64目录下补全64位版本的wininet.lib - Debugging Tools for Windows:安装完成后会自动在SDK的
lib/x64目录下补全dbghelp.lib
- Windows SDK for Desktop C++ x64:安装完成后会自动在SDK的
- 等待组件安装完成后,回到UE4源码根目录,以管理员身份运行
Setup.bat完成依赖校验,再运行GenerateProjectFiles.bat重新生成VS项目文件 - 打开生成的
UE4.sln,将解决方案配置设置为Development Editor、目标平台设置为x64,如果弹出SDK版本重定向提示直接确认,再重新执行编译即可
注意:不要从第三方站点单独下载对应lib文件丢入SDK目录,版本不匹配会导致编译完成的编辑器启动时出现随机崩溃,必须通过官方SDK安装向导补装对应组件。
如果补装组件后仍然提示找不到对应lib,打开VS项目属性页,在「VC++目录-库目录」配置项中,确认你刚补全组件的完整版本SDK的x64库路径优先级高于其他旧版本SDK路径,避免检索时被不全的旧SDK路径抢占优先级。
内容的提问来源于stack exchange,提问作者Xinggang Li
相关产品推荐
相关产品推荐

