2021-08-03基于Linux(中标麒麟)上QT的环境搭建——解决cannot find lGL的问题

中标麒麟QT环境配置
本文介绍在中标麒麟系统中配置QT开发环境时遇到cannotfindlGL错误的问题,并提供两种解决方案:创建软链接或复制文件。

http://download.cs2c.com.cn/neokylin/   中标麒麟系统下载地址

一、下载QT安装包

访问地址:http://download.qt.io/official_releases/qt/,进入到QT下载界面,选择对应的版本型号下载,如下图所示:

一、问题描述:

在中标麒麟上配置好QT的环境后,新建一个工程,不做其他的任何操作,直接运行都会报cannot find lGL的错误。如图所示:

   这个问题找了很久,网上有的资料都是Ubuntu上的解决方式,Ubuntu上的解决方式是运行命令sudo apt-get install libqt4-dev或者sudo apt-get install libgl1-mesa-dev或者libgl1-mesa-dev或者libglu1-mesa-dev;但这种方式完全不适合中标麒麟,最后还是研究工程编译的源代码,找到了问题所在:

二、问题分析:

出现上述问题主要的原因是由于QT Creator在编译运行时查找的libGL的库是不带版本号的,及它查找的是libGL.so,而原本系统中在usr/lib64路径下只有libGL.so.1、libGL.so.1.2.0、libGLU.so.1、libGLU.so.1.3.1,后缀中待了版本号,导致QT程序编译时找不到对应的库,所以需要复制或创建链接命名为libGL.so。

三、解决方式:

(1)检测当前系统中libGL相关的包

进入终端,在最上一级上输入命令ls  /usr/lib64/libGL,按Tab键,此时会出现lib64下所有的libGL相关的文件,如下图所示:

(2)解决该问题有两种方式,一种是创建快捷指向libGL.so.1的方式,另外一种是直接复制的方式。

  • 创建快捷的方式(建议以这种方式解决)

在终端中在终端中进入到usr/lib64的路径下,输入命令:ln libGL.so.1 libGL.so ,可参照下图所示,此处输入的含义就是创建一个链接的快捷方式名称叫libGL.so其实指向的是libGL.so.1。

  • 直接复制的方式

在终端中进入到usr/lib64的路径下,输入命令:cp libGL.so.1 libGL.so,可参照下图,此方式的含义是复制一个文件libGL.so.1,复制后的文件名称叫libGL.so。

转载地址:http://www.cnblogs.com/yy-zl/p/5648851.html

麒麟系统上安装Qt后编译运行报错`cannot find -lGL`,可以通过以下方法解决: #### 方法一:使用yum安装相关依赖 在CentOS系统中,可使用以下命令安装相关依赖: ```bash su root yum install mesa-libGL-devel mesa-libGLU freeglut-devel ``` 不过此方法在麒麟系统不一定适用,仅作参考[^1]。 #### 方法二:手动建立软连接 在麒麟系统上,通过在线安装可能会有问题,需要手动建立软连接来解决。 首先查找系统自带的`libGL`库,在终端输入指令: ```bash sudo find /usr -name libGL* ``` 然后建立软连接,例如: ```bash sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so ``` 这里`/usr/lib/x86_64-linux-gnu/libGL.so.1`为示例中库所在的位置,实际操作中需根据查找结果进行调整。建立软连接后,再次重新编译Qt问题即可解决[^2][^3]。 #### 方法三:查找路径并创建链接 可以使用`locate libGL`命令查找`libGL`库的所在路径,例如: ```bash locate libGL ``` 可能会得到如下信息: ``` /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10 /usr/lib/x86_64-linux-gnu/libGLEW.so.1.10.0 /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10 /usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.10.0 /usr/lib/x86_64-linux-gnu/libGLU.so.1 /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2 /usr/lib/x86_64-linux-gnu/mesa-egl/libGLESv2.so.2.0.0 ``` 然后根据查找结果创建链接,例如: ```bash sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so ``` 再次编译,便可成功[^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值