您的位置:首页 > 运维架构 > Linux

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

2016-09-18 13:52 711 查看


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 linux 麒麟