我的平台是fedora 21 x64,QT 5.4 qtcreator 3.3.0
我的显卡是NVS4100并安装支持OpenGl的NVIDIA驱动程序。
当我从qt-creator做同样的事情时,我会收到错误消息:
libGL错误:找不到匹配的fbConfigs或视觉效果
libGL错误:无法加载驱动程序:swrast
... 经过一番调查后,我发现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在它前面?
答案 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
来解决此问题。