Ubuntu虚拟机中运行mangohud glxgears提示Can't get libdl.so错误求助
Ubuntu虚拟机中运行mangohud glxgears提示Can't get libdl.so错误求助
看起来你在Ubuntu虚拟机里折腾MangoHud时遇到了OpenGL程序的兼容性问题——Vulkan正常但GLX(也就是OpenGL)的glxgears报错找不到libdl.so,我来帮你一步步排查解决~
第一步:确认系统核心库是否正常
libdl.so是Linux负责动态链接的核心库,属于libc6包的一部分,理论上不会缺失,但我们先确认状态:
打开终端运行:ls /lib/x86_64-linux-gnu/libdl.so*如果输出里只有
libdl.so.2(实际库文件),没有libdl.so(符号链接),可以手动创建链接:sudo ln -s /lib/x86_64-linux-gnu/libdl.so.2 /lib/x86_64-linux-gnu/libdl.so如果连
libdl.so.2都找不到,说明libc6包可能损坏,重新安装它:sudo apt install --reinstall libc6第二步:确保MangoHud的GLX组件安装完整
有时候基础安装可能漏掉了OpenGL相关的模块,试试彻底重装MangoHud和GOverlay:# 先卸载现有版本 sudo apt remove --purge mangohud goverlay # 添加官方PPA(如果之前没加过) sudo add-apt-repository ppa:flexiondotorg/mangohud sudo apt update # 重新安装完整包 sudo apt install mangohud goverlay第三步:检查虚拟机的3D加速支持
虚拟机里的OpenGL依赖GPU虚拟化设置,如果glxgears本身都跑不起来,MangoHud肯定没法挂载:
先试试直接运行glxgears,看能不能正常显示齿轮动画:- 如果失败,先搞定虚拟机的3D加速:
- VirtualBox用户:安装Guest Additions,然后在虚拟机设置的「显示」选项卡开启「启用3D加速」
- VMware用户:安装VMware Tools,在虚拟机设置的「显示器」中开启「加速3D图形」
- 如果失败,先搞定虚拟机的3D加速:
第四步:手动指定动态库加载路径
如果上面的步骤都无效,可以强制指定库的加载路径,帮MangoHud找到libdl:LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libdl.so.2 mangohud glxgears或者更直接地指定MangoHud的GLX模块和libdl:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/mangohud/libMangoHud_glx.so:/usr/lib/x86_64-linux-gnu/libdl.so.2 glxgears
备注:内容来源于stack exchange,提问作者moeeeom
相关产品推荐
相关产品推荐

