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

时间:2014-12-26 16:32:42

标签: c++ qt opengl qt-creator qt5

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

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

  1. 当我在qtcreator之外执行编译的opengl应用程序时,它正常工作
  2. 当我从qt-creator做同样的事情时,我会收到错误消息:

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

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

  3. ... 经过一番调查后,我发现QProcess :: start使用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在它前面?

7 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

来修复它

答案 2 :(得分: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联系)

答案 3 :(得分:0)

在openSUSE 13.2上

我可以在项目的“运行配置”中更改“LD_LIBRARY_PATH”,或者在更广泛的位置,在“设置>选项> Buid& Run>套件>环境”中更改为“无任何内容”或“更改” AMD专有驱动程序“libGL.so”的路径:“/ usr / X11R6 / lib64 /”并且openGL程序运行时没有错误。

答案 4 :(得分:0)

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

sudo apt-get install nvidia-331

答案 5 :(得分:0)

我在Arch Linux上多次遇到类似的问题。提到的错误使程序无法启动:

  

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

     

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

答案 6 :(得分:0)

由于QtCreator 4.5.2存在类似问题,因此可以通过取消选中Add build library search path下的Projects -> Build & Run -> Run Settings -> Run来解决此问题。

相关问题