背景

在树莓派3B+上运行QT开发的程序时,经常出现下面的警告信息:
libEGL warning: DRI2 :failed to authenticate


一、什么含义?

表示共享库libEGL认证失败,这可能是/usr/lib/arm-linux-gnueabihf/下的libEGL的相关库的软连接无效,需要重新建立软链接

二、解决方案

1.查找libEGL的相关库

代码如下:

sudo find / -name "libEGL*"
sudo find / -name "libGLESv2*"

可以得到libEGL.solibGLESv2.so的相关库的地址,我们需要根据地址在/usr/lib/arm-linux-gnueabihf/中构建软链接
在这里插入图片描述

2.构建软连接

代码如下:

sudo ln -fs libEGL.so地址  /usr/lib/arm-linux-gnueabihf/libEGL.so
sudo ln -fs libEGL.so地址 /usr/lib/arm-linux-gnueabihf/libEGL.so.1
sudo ln -fs libGLESv2.so地址 /usr/lib/arm-linux-gnueabihf/libGLESv2.so
sudo ln -fs libGLESv2.so地址 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2

目的是确保/usr/lib/arm-linux-gnueabihf/中存在所有四项的链接

3.刷新共享库

sudo ldconfig

总结

目前为止,我没有发现警告信息对程序运行的某种影响,也就是说可以忽略警告信息。
但是存在警告信息总是让开发者心里没底,因此我在GitHub上找到了相关的解决方法,事实上是有效的,程序运行时不再弹出警告信息!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐