从QtCreator启动OpenGl应用程序的严重问题

问题描述 投票:2回答:6

我的平台是fedora 21 x64,QT 5.4 qtcreator 3.3.0

我的显卡是NVS4100并安装支持OpenGl的NVIDIA驱动程序。

  1. 当我在qtcreator之外执行编译的opengl应用程序时,它是有效的
  2. 当我从qt-creator做同样的事情时,我会收到错误消息: libGL错误:找不到匹配的fbConfigs或视觉效果 libGL错误:无法加载驱动程序:swrast

...经过一些调查后,我发现QProcess ::开始使用qtcreator将/ usr / lib64添加到环境中的LD_LIBRARY_PATH,这会破坏链接器指示的正确本地化(使用命令ldd)(libGL.so.1 => / usr /lib64/nvidia/libGL.so.1(0x00007fe25ca7d000ich

我怎么能改变那个?所有尝试从qtcreator更改LD_LIBRARY_PATH失败,Qprocess :: start追加/ usr / lib64在它面前?

c++ qt opengl qt-creator qt5
6个回答
1
投票

我在以下错误报告中找到了基本问题的答案:

https://bugreports.qt.io/browse/QTCREATORBUG-8727

显然,Qt需要修复名为DesktopQmakeRunConfiguration的函数/方法。


1
投票

使用OpenSuse 42.1和Qt Creator 5时出现相同的错误。使用社区NVidia repo更新视频驱动程序后出错。显然,如果您使用64位Linux发行版,则只会出现此错误。我能够通过编辑QT Creator中的LD_LIBRARY_PATH从/ usr / lib64到/ usr / lib来修复它


0
投票

我对fedora 19 x64和Qt 5.3.2也有同样的问题。

libGL错误:无法加载驱动程序:swrast

正如您所指出的,LD_LIBRARY_PATH似乎搞乱了正确库的本地化(/usr/lib64/libGL.so.1而不是/usr/lib64/nvidia/libGL.so.1)。

在我的情况下,这是由以下行在我的.pro文件中添加外部库引起的:

unix:!macx:LIBS + = -L / usr / lib64 -lrt

为了避免模糊路径并解决问题,我指定了我需要链接的库的名称:

unix:!macx:LIBS + = -L / usr / lib64 / librt.so -lrt

在此之后,libGL错误消失了! (我仍然能够与librt.so链接)


0
投票

在openSUSE 13.2上

我可以在项目的“运行配置”中更改“LD_LIBRARY_PATH”,或者在“设置>选项>运行>运行>套件>环境”中更常见的地方更改“LD_LIBRARY_PATH”,或者更改为AMD专有驱动程序“libGL”的路径。所以“:”/ usr / X11R6 / lib64 /“并且openGL程序运行没有错误。


0
投票

当我从Macbook Pro进入我的Ubuntu VM时遇到了同样的问题。在我的Ubuntu 16.04 64位操作系统上安装以下驱动程序为我解决了这个问题。希望这有助于某人。

sudo apt-get install nvidia-331


0
投票

我在Arch Linux上遇到过类似的问题。上述错误阻止程序启动:

libGL错误:找不到匹配的fbConfigs或视觉效果

libGL错误:无法加载驱动程序:swrast

在我的案例中可行的快速解决方案是LD_PRELOAD正确的库:

$ LD_PRELOAD='/usr/lib/nvidia/libGL.so' <program>

/usr/lib/nvidia/libGL.so指向正确的libGL:

$ namei /usr/lib/nvidia/libGL.so
f: /usr/lib/nvidia/libGL.so
 d /
 d usr
 d lib
 d nvidia
 l libGL.so -> libGL.so.1
   l libGL.so.1 -> libGL.so.340.107
     - libGL.so.340.107
$ file /usr/lib/nvidia/libGL.so.340.107
/usr/lib/nvidia/libGL.so.340.107: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, stripped
© www.soinside.com 2019 - 2024. All rights reserved.