Linux Qt cannot find -lGL错误完美解决方案
对于很多 Linux 发行版本,Qt 安装完成后如果直接编译或者运行项目,会出现“cannot find -lGL”错误,如下图所示:
这是因为 Qt 找不到 OpenGL 的动态链接库(libGL.so)。在《Linux Qt安装》一节中我们说过,OpenGL 在大部分 Linux 发行版中都是默认安装的,包括 Ubuntu、CentOS 等,找不到该链接库一般都是路径不对。
Qt 默认在 /usr/lib/ 目录下查找动态链接库,但是很多 Linux 发行版将 OpenGL 链接库放在其它目录,例如我使用的是 CentOS 7,OpenGL 链接库位于 /usr/lib64/ 目录,而对于 Ubuntu,OpenGL 链接库位于 /usr/lib/i386-linux-gnu/mesa/ 目录。只要我们把 libGL.so 拷贝到 /usr/lib/ 目录,或者在 /usr/lib/ 目录下为 libGL.so 创建一个链接,就能解决问题。显然第二种办法更好。
另外,Linux 发行版自带的 OpenGL 链接库在后缀中添加了版本号,例如 libGL.so.1、libGL.so.1.2.0、libGL.so.1.3.1 等,但是 Qt 在链接阶段查找的 OpenGL 链接库是不带版本号的。
总起来说,我们需要在 /usr/lib/ 目录下为 OpenGL 链接库创建一个链接,并去掉版本号。
如果你不知道当前 Linux 系统中 libGL.so 的具体路径,可以使用locate libGL命令或find /usr -name libGL*命令查找,然后使用ln -s创建链接。请看下面的演示:
#查找 libGL 所在位置
[root@localhost ~]# locate libGL
/usr/lib64/libGL.so
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so.1.2.0
/usr/share/doc/mesa-libGL-9.2.5
/usr/share/doc/mesa-libGL-9.2.5/COPYING
#创建链接
[root@localhost ~]# ln -s /usr/lib64/libGL.so.1 /usr/lib/libGL.so
Linux 系统中可能存在多个版本的 libGL.so,为任意一个版本创建链接即可。普通用户没有权限创建链接,所以我使用了 root 用户。
完成以上操作,再次启动 Qt,然后编译或者运行,就不会出现“cannot find -lGL”错误了。
————————————————
版权声明:本文为CSDN博主「江南又旧雨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38293453/article/details/104143898
Linux Qt cannot find -lGL错误完美解决方案相关推荐
- linux qt 找不到 lgl,Linux Qt cannot find -lGL错误完美解决方案(亲测有效)
http://c.biancheng.net/view/3901.html 对于很多 Linux 发行版本,Qt 安装完成后如果直接编译或者运行项目,会出现"cannot find -lGL ...
- Linux Qt cannot find -lGL错误
问题描述: 将项目移植到linux之后,用Qt编译发现 编译错误cannot find -lGL 原因分析: 1.库的问题嘛:首先想到代码中有些头文件或库文件与windows不兼容.于是新建空工程编译 ...
- “IIS配置401错误”完美解决方案
"IIS配置401错误"完美解决方案 1.错误号401.1 症状:HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝. 分析: 由于用户匿名访问使用的账号(默认是 ...
- Linux Qt cannot find -lGL 解决方案
1. 解决方案 对于很多 Linux 发行版本,Qt 安装完成后如果直接编译或者运行项目,会出现"cannot find -lGL"错误,如下图所示: 这是因为 Qt 找不到 Op ...
- linux下Qt cannot find -lGL错误的解决方法
在linux下使用Qt 编译时候遇上了cannot find -lGL错误 因为缺少相关包,可以使用下列命令安装 sudo apt-get install libqt4-dev
- linux内核变更导致的错误及解决方案1
Linux 内核变更导致驱动经常出现的错误记录 - 代码天地 (codetd.com)
- linux下编译doppia,Grub错误总结解决方案(共十七条)
lyzhang_sh 于 2009-01-08 19:02:50发表: 感觉你还没说清楚啊 进啥模式里? 对于新手很难理解了 lion2010 于 2008-09-05 03:40:46发表: 我是1 ...
- nltk安装punkt等语料库时报SSL错误完美解决方案及离线安装方法
nltk是NLP领域中一个比较通用的国际分词工具,但是使用时往往依赖语料库数据包,需要安装到本地,以下介绍在线安装和离线安装两种方式: (ps:对NLP感兴趣的朋友可以相互学习,我的微信号:Joney ...
- Linux Qt cannot find -lGL
#查找 libGL 所在位置 [root@localhost ~]# locate libGL /usr/lib64/libGL.so /usr/lib64/libGL.so.1 /usr/lib64 ...
最新文章
- 面向对象语言的new操作
- 关于CSS属性display:none和visible:hidden的区别
- 南工程计算机学院贴吧,【计算机工程学院答疑转帖】
- 【网址收藏】本地VSCode编辑远程服务器文件:Remote SSH
- Ubuntu换源失败:Could not get lock /var/lib/apt/lists/lock - open
- CCIE-LAB-第五篇-DHCP+DHCP-Realy+DHCP snooping
- 超大规模数据集类的创建
- HTML5 学习总结(二)——HTML5新增属性与表单元素
- (五)nginx设置静态文件不记录日志
- python如何制作登录密码_python实战系列之模拟用户密码登陆系统(一)
- shell脚本通过ping命令来获取平均延时
- 经过七年演进,Serverless流行起来了吗?
- android 删除特定字符串,android-从改造响应中删除不需要的字符串
- 湖南大学计算机与通信学院李燕,基于SVM的面部表情分析
- #LeetCode15. 三数之和 @FDDLC
- (PTA)数据结构(作业)1、基本概念
- 富士康将和台积电联手 竞购东芝半导体业务
- 线性代数(十) : 矩阵的列空间与零空间
- Assembly ADODB注册
- 综合调度系统数据单向传输与网络隔离应用方案
热门文章
- Arduino 串口数据读写
- 区块链安全:实现公链双花攻击的多种方法
- 如何做gif动图表情包?轻松一键快速制作gif表情包
- 通俗易懂解释raid0和raid5_简要阐述raid 0,raid 1,raid5 之间的区别于优缺点以及最低组建条件和可用容量...
- .net EF 事务TransactionScope和BeginTransaction的用法
- SpringBoot系列之对Excel报表的校验提示
- 互联网产品的需求分析
- 【Python爬虫实战】使用Selenium爬取QQ音乐歌曲及评论信息
- NetScaler AG自定义用户门户
- MIT 操作系统实验 MIT JOS lab1