基于Linux(中标麒麟)上QT的环境搭建——解决cannot find lGL的问题
接上一篇,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。

基于Linux(中标麒麟)上QT的环境搭建——解决cannot find lGL的问题的更多相关文章
- 基于Linux(中标麒麟)上QT的环境搭建
最近由于公司需要,需要在中标麒麟上进行QT的二次开发,但是网上的资料很少,就算是有也基本都是其他的版本的Linux上的搭建.中标麒麟本身的资料也很好,而且还只能试用60天. 下面就介绍下我对此环境的搭 ...
- linux下arm平台Qt编译环境搭建与解析
一.概述: 我们知道QTcreator.这仅仅是个IDE,他包含了一个编译器--qmake.这两者的关系与codeblocks和g++的关系一样,首先要明确这些. 而我们在linu ...
- linux python 图形编程 qt开发环境搭建
我的系统是 ubuntu14.04 我们使用的是python2.7,建议安装qt4+pyqt4+eric4 eric是pyqt的界面设计器的代码生成软件. 1.安装sip 这个是python和qt之间 ...
- 基于全志H3芯片的ARM开发环境搭建
基于全志H3芯片的ARM开发环境搭建 最近买了个友善之臂的NanoPi M1板子,又在网上申请了个NanoPi NEO板子,这两个都是基于全志H3芯片的Crotex-A7四核ARM开发板,两个板子可以 ...
- iMX6 yocto平台QT交叉编译环境搭建
转:https://blog.csdn.net/morixinguan/article/details/79351909 . /opt/fsl-imx-fb/4.9.11-1.0.0/environm ...
- unbuntu16.04上python开发环境搭建建议
unbuntu16.04上python开发环境搭建建议 2017-12-20 10:39:27 推荐列表: pycharm: 可以自行破解,但是不推荐,另外也不稳定 pydev+eclipse: ...
- Qt开发环境搭建 - Windows + VS2010 + VS插件
Qt 开发环境搭建 - Windows+VS2010+VS插件 1.Qt在Windows平台下的三种开发环境 方案 编辑器 编译器 调试器 一 Qt Creator MinGW GDB 二 Qt Cr ...
- CentOS上javaweb开发环境搭建
CentOS上javaweb开发环境搭建 安装jdk yum list java* yum install java-1.7.0-openjdk* -y java -version 安装tomcat ...
- qt学习教程1.qt开发环境搭建
qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...
随机推荐
- 3.使用 Code First 迁移更新数据库
1.更新 SeedData 类,使它提供新列的值. 示例更改如下所示,但可能需要对每个 new Movie 块做出此更改. context.Movie.AddRange( new Movie { Ti ...
- Matlab原型模式
原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象.Matlab面向对象编程有两种类,一种是Value Class,一种是Ha ...
- docker安装mysql笔记
首先 查找镜像 docker search mysql 拉取镜像 : docker pull mysql 拉取成功后,查看本地镜像: docker images 可以看到本地有两个镜像(redis是我 ...
- mouseleave和mouseout的区别
http://www.w3school.com.cn/tiy/t.asp?f=jquery_event_mouseleave_mouseout
- 学习操作系统和Linux内核的新体会
算起来是第三次看内核了吧,要从源码的细节中爬出来: (1)先拎清楚主要的数据结构,就把握住了骨架: (2)再看每个系统调用的功能的流程是如何围绕上述数据结构展开.举个栗子,块设备驱动层的主要数据结构有 ...
- 电脑 DNS纪要
电脑 DNS说明 1.电脑的DNS必须设置成114.114.114.114才能上网? 电脑的DNS不是必须设置成114.114.114.114才能上网,而只是DNS设置为这个地址刚好能够上网.设置合适 ...
- 【Docker】docker安装GitLab
一.下载镜像 docker pull gitlab/gitlab-ce 二.运行GitLab容器 1.生成启动文件 - start.sh 使用docker命令运行容器,注意修改hostname为自己喜 ...
- 8.7 —— 排序函数及 splice 插入
.排序,按自己的逻辑 nid_item_vec.sort([](const NID_PBDATA &l, const NID_PBDATA &r) -> bool { retur ...
- X509IncludeOption 枚举
X509IncludeOption 枚举 指定 X.509 数据应包括 X.509 证书链的哪些内容. EndCertOnly 2 X.509 链信息中仅包括最终证书. ExcludeRoot 1 包 ...
- SQL进阶系列之7用SQL进行集合运算
写在前面 集合论是SQL语言的根基,因为这种特性,SQL也被称为面向集合语言 导入篇:集合运算的几个注意事项 注意事项1:SQL能操作具有重复行的集合(multiset.bag),可以通过可选项ALL ...