基于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 下载好后,打开安装包,然后点下一步 选择一个 ...
随机推荐
- ASP.NET SignalR 系列(四)之指定对象推送
在上一章讲到了广播推送,即所有订阅的用户都能收到,这种适合于信息广播. 接下来介绍如何给指定的对象推送 在讲这个之前先说明一下连接创建的基础知识 1.每个页面与服务端创建连接并启动时,这时服务端会产生 ...
- Centos复制的系统无法获取IP地址
本文主要是解决自己玩虚拟机时遇到的问题,网上查询了很多资料,最好综合多方的资料进行如下总结,如果无法解决您得问题,不要着急慢慢梳理总会解决的,加油~~~ 1.添加一块新的虚拟机的网卡2.删除rm -r ...
- 为什么UDP有时比TCP更有优势?
随着网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单.传输快的优势,在越来越多场景下取代了TCP.1.网速的提升给UDP稳定性提供可靠网络保障 CDN服务商Akamai(NASDAQ: A ...
- sql分页优化
索引优化 注意查询的数据占总数据达到一定量的时候可能导致索引失效.可以用limit或者指定列缩小数据区域可以解决. 以时间orderby排序的limit分页优化 前提用order by分页 limit ...
- angularJs指令的Scope(作用域)
每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然Angular ...
- Android开发常用开源框架:图片处理
https://blog.csdn.net/SGQ_CSDN/article/details/79910709 Android开发常用开源框架:图片处理 框架名称 功能描述 Android Unive ...
- Synchronized可重入锁通俗易懂的简单分析
可重入锁概念: 当一个线程得到一个对象锁后,再次请求此对象时时可以再次得到该对象的锁的,这也证明synchronized方法/块的内部调用本类的其他synchronized方法/块时,时永远可以得到锁 ...
- 精选SpringBoot八大开源项目:支付、秒杀、全文搜索等
前言 曾在自己的博客中写下这样一段话:有一种力量无人能抵挡,它永不言败生来倔强.有一种理想照亮了迷茫,在那写满荣耀的地方. 如今,虽然没有大理想抱负,但是却有自己的小计划.下面是这一年来,自己利用闲暇 ...
- 大数据系列文章-Hadoop基础介绍(一)
Hadoop项目背景简介 2003-2004年,Google公开了部分GFS个Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年的业余时间,实现了DFS和Mapreduce机 ...
- Node: Process模块 (Features of Process)
Process模块 (Features of Process) process is a global variable which indicates the current Node.js pro ...