所以,我最近收到一位客户的投诉,抱怨我们的软件在他的 ubuntu 16.04 PC 上崩溃了。他说该软件最初可以正常工作,但一段时间后当他尝试使用它时,软件崩溃了。
他最初的运行给出了以下错误/警告:
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Unrecognized OpenGL version
Unrecognized OpenGL version
QMetaObject::connectSlotsByName: No matching signal for on_pushButton_browse_released()
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_localRunMode_toggled(bool)
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_remoteRunMode_toggled(bool)
QMetaObject::connectSlotsByName: No matching signal for on_pushButton_browse_released()
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_localRunMode_toggled(bool)
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_remoteRunMode_toggled(bool)
QObject::connect: No such slot S3DGui::slotOnCentralTabChanged(int)
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
Unrecognized OpenGL version
Unrecognized OpenGL version
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
Segmentation fault (core dumped)
我关注了@的答案在 ubuntu 15.04 上安装 Steam 时出错 来定位问题,但是失败了。
我曾要求他向我发送 LIBGL_DEBUG 的输出,其输出为:
$ DISPLAY=:0 LIBGL_DEBUG=verbose ./<Project_script name>
libGL: Can't open configuration file /home/<name>/.drirc: No such file or directory.
libGL: pci id for fd 9: 10de:1bb0, driver nouveau
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/nouveau_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
libGL: dlopen /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so failed (/usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1: undefined symbol: drmSyncobjWait)
libGL: OpenDriver: trying ${ORIGIN}/dri/tls/nouveau_dri.so
libGL: OpenDriver: trying ${ORIGIN}/dri/nouveau_dri.so
libGL: dlopen ${ORIGIN}/dri/nouveau_dri.so failed (${ORIGIN}/dri/nouveau_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib/dri/tls/nouveau_dri.so
libGL: OpenDriver: trying /usr/lib/dri/nouveau_dri.so
libGL: dlopen /usr/lib/dri/nouveau_dri.so failed (/usr/lib/dri/nouveau_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL: pci id for fd 9: 10de:1bb0, driver nouveau
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/nouveau_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
libGL: dlopen /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so failed (/usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1: undefined symbol: drmSyncobjWait)
libGL: OpenDriver: trying ${ORIGIN}/dri/tls/nouveau_dri.so
libGL: OpenDriver: trying ${ORIGIN}/dri/nouveau_dri.so
libGL: dlopen ${ORIGIN}/dri/nouveau_dri.so failed (${ORIGIN}/dri/nouveau_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib/dri/tls/nouveau_dri.so
libGL: OpenDriver: trying /usr/lib/dri/nouveau_dri.so
libGL: dlopen /usr/lib/dri/nouveau_dri.so failed (/usr/lib/dri/nouveau_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: dlopen /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed (/usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1: undefined symbol: drmSyncobjWait)
libGL: OpenDriver: trying ${ORIGIN}/dri/tls/swrast_dri.so
libGL: OpenDriver: trying ${ORIGIN}/dri/swrast_dri.so
libGL: dlopen ${ORIGIN}/dri/swrast_dri.so failed (${ORIGIN}/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so
libGL: dlopen /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QMetaObject::connectSlotsByName: No matching signal for on_pushButton_browse_released()
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_localRunMode_toggled(bool)
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_remoteRunMode_toggled(bool)
QMetaObject::connectSlotsByName: No matching signal for on_pushButton_browse_released()
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_localRunMode_toggled(bool)
QMetaObject::connectSlotsByName: No matching signal for on_checkBox_remoteRunMode_toggled(bool)
QObject::connect: No such slot S3DGui::slotOnCentralTabChanged(int)
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
QFileInfo::absolutePath: Constructed with empty filename
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
Unrecognized OpenGL version
Unrecognized OpenGL version
QOpenGLWidget: Failed to make context current
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
composeAndFlush: makeCurrent() failed
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
function is no-op
Segmentation fault (core dumped)
如您所见,该项目使用 Qt 和 OpenGL。我真的不知道问题可能是什么。任何建议都将不胜感激。
PS 我注意到他的库在 lib/ 文件夹中(尽管他使用的是 x86_64 库),而我们的库在 lib64/ 中(其中代码运行良好)。