libGL error: No matching fbConfigs or visuals found

今天突然打不开Qtcreator了,运行qtcreator出现提示:

[xj@localhost ]$ qtcreator
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Could not initialize GLX

上网找了一圈:有一个ubuntu的问答社区说需要删掉libGL.so.1。大概原因是mesa的libGL库和nvida的冲突了:https://askubuntu.com/questions/834254/steam-libgl-error-no-matching-fbconfigs-or-visuals-found-libgl-error-failed-t


Ubuntu 16.04+ For anyone still getting same error, if you are using nvidia driver, sometimes you will see that libGL.so.1 points to ambiguous libGL provided by both mesa and nvidia. To test this, you can run this command

$ sudo ldconfig -p | grep -i gl.so
The output was something like:

libwayland-egl.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libwayland-egl.so.1
libftgl.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libftgl.so.2
libcogl.so.20 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcogl.so.20
libQt5OpenGL.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5
libQtOpenGL.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4
libQtOpenGL.so.4 (libc6) => /usr/lib/i386-linux-gnu/libQtOpenGL.so.4
libOpenGL.so.0 (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so.0
libOpenGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libOpenGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so.1
libGL.so.1 (libc6) => /usr/lib/i386-linux-gnu/mesa/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-378/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libGL.so
libGL.so (libc6) => /usr/lib32/nvidia-378/libGL.so
libEGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so.1
libEGL.so.1 (libc6) => /usr/lib32/nvidia-378/libEGL.so.1
libEGL.so (libc6,x86-64) => /usr/lib/nvidia-378/libEGL.so
libEGL.so (libc6) => /usr/lib32/nvidia-378/libEGL.so

Now I just needed to remove the library provided by mesa and everything worked perfectly.

$ sudo rm /usr/lib/i386-linux-gnu/mesa/libGL.so.1
Update: This issue no longer exists from Ubuntu 18.04 LTS.


突然想到我前几天安装过SDL,是一个显示库,难道与libGL有关。。。。
于是我在我目录下查看一下,发现在/usr/lib 和/usr/lib64/ 的目录下都有libGL.so.1

[xj@localhost build]$ sudo find / -iname “*libGL.so*”
/usr/lib/libGL.so.1.0.0
/usr/lib/libGL.so.1
/usr/lib/libGL.so
/usr/lib64/libGL.so.1.0.0
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so
/usr/lib64/libGL.so.1.2.0
分别查看:
[xiaojin@localhost build]$ ll /usr/lib/libGL.so.*
lrwxrwxrwx. 1 root root 14 6月 11 20:43 /usr/lib/libGL.so.1 -> libGL.so.1.0.0
-rwxr-xr-x. 1 root root 528708 6月 11 20:43 /usr/lib/libGL.so.1.0.0

[xiaojin@localhost build]$ ll /usr/lib64/libGL.so.*
lrwxrwxrwx. 1 root root 14 10月 31 11:31 /usr/lib64/libGL.so.1 -> libGL.so.1.2.0
-rwxr-xr-x. 1 root root 665712 6月 11 20:43 /usr/lib64/libGL.so.1.0.0
-rwxr-xr-x. 1 root root 480816 4月 12 2018 /usr/lib64/libGL.so.1.2.0

着重看这一条:

lrwxrwxrwx. 1 root root 14 10月 31 11:31 /usr/lib64/libGL.so.1 -> libGL.so.1.2.0

今天是2018.11.2。 就在几天前,我为了编译ffmpeg的ffplay,装了SDL:

yum install SDL2-devel

这个SDL是个显示库,安装SDL2-devel的时候yum自动为我安装了他的依赖(翻出前几天的安装提示):

正在安装:
SDL2-devel x86_64 2.0.8-5.el7 epel 251 k
为依赖而安装:
libwayland-client x86_64 1.14.0-2.el7 base 32 k
libwayland-server x86_64 1.14.0-2.el7 base 38 k
mesa-libGLES-devel x86_64 17.2.3-8.20171019.el7 base 57 k
为依赖而更新:
SDL2 x86_64 2.0.8-5.el7 epel 416 k
libdrm x86_64 2.4.83-2.el7 base 151 k
libdrm-devel x86_64 2.4.83-2.el7 base 128 k
mesa-libEGL x86_64 17.2.3-8.20171019.el7 base 96 k
mesa-libEGL-devel x86_64 17.2.3-8.20171019.el7 base 33 k
mesa-libGL x86_64 17.2.3-8.20171019.el7 base 156 k
mesa-libGL-devel x86_64 17.2.3-8.20171019.el7 base 157 k
mesa-libGLES x86_64 17.2.3-8.20171019.el7 base 25 k
mesa-libgbm x86_64 17.2.3-8.20171019.el7 base 38 k
mesa-libglapi x86_64 17.2.3-8.20171019.el7 base 43 k

答案就在这里!系统在安装mesa-libGL的时候把我的lib64/libGL.so.1软链指向了 lib64/libGL.so.1.2.0,这个文件的日期是4月份,跟usr/lib文件夹下面的libGL.so都不一样(是6月份安装的),我把 /usr/lib64/libGL.so.1 重新链接到了 /usr/lib64/libGL.so.1.0.0

sudo rm /usr/lib64/libGL.so.1
sudo ln -s /usr/lib64/libGL.so.1.0.0 /usr/lib64/libGL.so.1

现在打开qtcreator就完全没问题啦!

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值