libGL 确实存在,但链接器找不到它 - Qt 4.8.7、CentOS 7.5
Posted
技术标签:
【中文标题】libGL 确实存在,但链接器找不到它 - Qt 4.8.7、CentOS 7.5【英文标题】:libGL does exists, but linker can't find it - Qt 4.8.7, CentOS 7.5 【发布时间】:2018-11-12 14:25:54 【问题描述】:我从base repo
安装了CentOS Linux release 7.5.1804
和Qt 4.8.7
。我安装了NVidia driver version 390.59 release date 2018.5.16
。
我也有libGL-mesa
和libGL-mesa-devel
INSTALLED。
我的显卡 Quadro K4000M 运行良好 - 例如,glxgears
60fps,Qt Demos (OpenGL) 工作。
但是当我尝试编译 chip
示例时,我收到以下错误:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible //lib/libGL.so when searching for -lGL
/usr/bin/ld: skipping incompatible //usr/lib/libGL.so when searching for -lGL
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
make: *** [chip] Error 1
这里是ls
命令输出:
[user@centos-7 ~]$ ls -h /usr/lib64/ | grep "libGL"
libGLdispatch.so.0
libGLESv1_CM_nvidia.so.1
libGLESv1_CM_nvidia.so.390.59
libGLESv1_CM.so
libGLESv1_CM.so.1
libGLESv1_CM.so.1.2.0
libGLESv2_nvidia.so.2
libGLESv2_nvidia.so.390.59
libGLESv2.so
libGLESv2.so.2
libGLESv2.so.2.1.0
libGL.la
libGL.so
libGL.so.1
libGL.so.1.7.0
libGLU.so
libGLU.so.1
libGLU.so.1.3.1
libGLX_indirect.so.0
libGLX_nvidia.so.0
libGLX_nvidia.so.390.59
libGLX.so
libGLX.so.0
如何解决问题?
【问题讨论】:
看看这个unix.stackexchange.com/questions/364944/… Stock Qt 是针对台面驱动程序构建的。如果您希望它使用其他驱动程序,您可能必须自己构建它。 @dtech 演示应用程序,随 Qt 以二进制形式提供,工作正常 - 我的意思是支持 OpenGL。他们正在使用/usr/lib64/libGL.so
- 这个库,ld
在链接同一个示例时无法以某种方式找到。如果演示使用安装的 NVIDIA 驱动程序工作,为什么我不能链接相同的示例?
好吧,我希望我能帮助你,但我没有任何想法。我将重新打开您的问题,也许其他人会提供帮助。您可能希望将标题改进为更具描述性的形式,这样可能不会引起太多关注。
@dtech 我刚刚卸载了 NVIDIA 驱动程序并构建 chip 项目现在没有任何错误... :-/ 屏幕分辨率很难看,但支持 OpenGL安装 NVIDIA 驱动程序时 - 我的意思是 Qt 演示和示例。
【参考方案1】:
问题解决了——我用这种方式安装了NVIDIA最新驱动(version: 390.67 release Date: 2018.6.5
):http://www.advancedclustering.com/act_kb/installing-nvidia-drivers-rhel-centos-7/。
【讨论】:
以上是关于libGL 确实存在,但链接器找不到它 - Qt 4.8.7、CentOS 7.5的主要内容,如果未能解决你的问题,请参考以下文章