Ubuntu 22.04 Qt5.12.9编译出现“cannot find -lGL”解决
在Linux系统下安装好Qt5,打开Qt Creator新建一个最简单的工程,编译却出现"cannot find -lGL"错误。
在网上搜索解决方法,找到的方案一:执行apt-get install libglu1-mesa-dev
glen@ubuntu:~/linux/Qt$ sudo apt-get install libglu1-mesa-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:下列软件包有未满足的依赖关系:libglu1-mesa-dev : 依赖: libglu1-mesa (= 9.0.1-1build1) 但是 9.0.2-1 正要被安装依赖: libgl1-mesa-dev 但是它将不会被安装 或libgl-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
发现提示信息中依赖libgl1-mesa-dev,于是执行apt-get install libglu1-mesa-dev
glen@ubuntu:~/linux/Qt$ sudo apt-get install libgl1-mesa-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:下列软件包有未满足的依赖关系:libgl-dev : 依赖: libgl1 (= 1.3.2-1~ubuntu0.20.04.2) 但是 1.4.0-1 正要被安装依赖: libglx-dev 但是它将不会被安装libglvnd-dev : 依赖: libglvnd0 (= 1.3.2-1~ubuntu0.20.04.2) 但是 1.4.0-1 正要被安装依赖: libegl-dev (>= 1.3.0-1) 但是它将不会被安装依赖: libgles-dev (>= 1.3.0-1) 但是它将不会被安装依赖: libglx-dev (>= 1.3.0-1) 但是它将不会被安装依赖: libopengl-dev (>= 1.3.0-1) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
问题也没解决。搜索发现aptitude命令并尝试安装libglu1-mesa-dev
glen@ubuntu:~/linux/Qt/build-Test-GLEN_IMX6U-Debug$ sudo aptitude install libglu1-mesa-dev
下列“新”软件包将被安装。 libglu1-mesa-dev{b}
0 个软件包被升级,新安装 1 个,0 个将被删除, 同时 1 个将不升级。
需要获取 207 kB 的存档。解包后将要使用 998 kB。
下列软件包存在未满足的依赖关系:libglu1-mesa-dev : 依赖: libglu1-mesa (= 9.0.1-1build1) 但是 9.0.2-1 已安装依赖: libgl1-mesa-dev 但它是不可安装的 或者libgl-dev 但它是不可安装的
下列动作将解决这些依赖关系:保持 下列软件包于其当前版本:
1) libglu1-mesa-dev [未安装的]是否接受该解决方案?[Y/n/q/?] y
将不会安装,升级或者删除任何软件包。
0 个软件包被升级,新安装 0 个,0 个将被删除, 同时 1 个将不升级。
需要获取 0 B 的存档。解包后将要使用 0 B。当前状态:80422 (+2) new。
问题仍没有解决,于是想到是不是Ubuntu版本太高了,想降级到Ubuntu18.04,结果也失败了。有些不甘心重装系统,重新搜索cannot find -lGL,找到了这篇文章 https://www.jianshu.com/p/e1b2511c7cda ,即方案二:搜索系统中已经存在的libgl1-mesa-dev相关文件,使用find /usr -name libGL*命令搜索(libgl1-mesa-dev是有关OpenGL的库)
glen@ubuntu:~/linux/Qt$ find /usr -name libGL*
/usr/share/code/libGLESv2.so
/usr/lib/libGL.so.bak
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2.1.0
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0
/usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0
/usr/lib/x86_64-linux-gnu/libGLX_indirect.so.0
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/x86_64-linux-gnu/libGLX.so.0
/usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0
/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0.0.0
/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0
搜索结果中发现/usr/lib/x86_64-linux-gnu/libGL.so.1文件(这个文件也可能在另一个目录中)。然后使用ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so命令给已存在的库文件创建一个链接到/usr/lib目录。
glen@ubuntu:~/linux/Qt$ ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so
glen@ubuntu:~/linux/Qt$ ls /usr/lib/libGL.so -ll
lrwxrwxrwx 1 root root 36 10月 24 22:54 /usr/lib/libGL.so -> /usr/lib/x86_64-linux-gnu/libGL.so.1
然后在Qt Creator中再次编译工程,错误消失。
不过编译出现了以下警告:
Qt Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
按如下修改:
sudo vi /etc/gdm3/custom.conf
# GDM configuration storage
#
# See /usr/share/gdm/gdm.schemas for a list of available options.[daemon]
# Uncomment the line below to force the login screen to use Xorg
# WaylandEnable=false# Enabling automatic login
# AutomaticLoginEnable = true
# AutomaticLogin = user1# Enabling timed login
# TimedLoginEnable = true
# TimedLogin = user1
# TimedLoginDelay = 10
把 #WaylandEnable=false 这行注释符#删除,重启系统,警告消除。
Ubuntu 22.04 Qt5.12.9编译出现“cannot find -lGL”解决相关推荐
- Ubuntu 22.04 中的 .NET 6
.NET 6 现在包含在 Ubuntu 22.04 (Jammy) 中,只需 apt install dotnet6 即可安装.此更改是 Ubuntu 用户的一项重大改进和简化.我们还发布了带有 Ch ...
- Ubuntu 22.04下加快rust的编译速度
在学习Rust的时候,相信不少人和我一样一直受Rust编译慢的问题困扰.最近阅读一篇写得相当不错的英文博客<Tips for Faster Rust Compile Times>,加上最近 ...
- 【Qt】Qt5.12版本编译Oracle驱动教程
00. 目录 文章目录 00. 目录 01. Qt5.12安装 02. Qt安装注意事项 03. Qt版本和Oracle安装路径说明 04. Qt5.12编译Oracle驱动(使用MinGW 64位) ...
- Ubuntu 22.04 x86_64 OVF (sysin)
Ubuntu 22.04 LTS (GNU/Linux 5.15.0-25-generic x86_64) 请访问原文链接:https://sysin.org/blog/ubuntu-2204-ovf ...
- 抢先体验 Ubuntu 22.04 Jammy Jellyfish
距离4月21日 Ubuntu 22.04 正式发布越来越近,为了家里的各种 Ubuntu 设备能够安心升级,我决定提前体验接近完成的测试版. 本文提到的升级方式适用于 Desktop 桌面版和 Ser ...
- Ubuntu 22.04 LTS 是史诗级的版本?
导读 Canonical 最新的代号为"Jammy Jellyfish"的 Ubuntu LTS 版本,受到全球用户的好评.有数百个新的小功能和一些不太大众化的功能并没有引起太多关 ...
- 为什么说 Ubuntu 22.04 LTS 是史诗级的版本
下面是 Ubuntu 22.04 LTS 的一些次要特性,这些特性使它成为迄今为止最好的 LTS 版本之一. Canonical 最新的代号为"Jammy Jellyfish"的 ...
- Ubuntu 22.04下载安装VMware Workstation Pro 17
Ubuntu 22.04下载安装VMware Workstation Pro 17 一.下载 打开浏览器,访问VMware的官方网站:https://www.vmware.com 页面打开后,点击菜单 ...
- Ubuntu 22.04操作系统下常用软件备忘
时间过得真快,不知不觉间Ubuntu的桌面版本已经到了22.04.本文记录我在Ubuntu 22.04下使用的部分软件,一方面供刚开始使用Ubuntu系统的朋友们参考,另外就是方便自己以后重装系统.下 ...
最新文章
- stylegan2 示例命令fused_bias_act.cu环境配置异常(无法打开包括文件: “tensorflow/core/framework/op.h”
- IOS面试经常被问到的问题
- python 格式化时间
- carthage update --no-use-binaries --platform mac,ios
- 获取android的SDK或者手机目录路径
- python绘制饼图的列表有none_python 有没有库或者函数,类似R的corrplot,画相关系数图的时候,每个方框里面为饼图?...
- 郑州计算机技校哪个学校好,郑州十大技校排名 详细介绍
- 第一名数据科学工作冠状病毒医生
- 常用前端代码资源(转)
- 团队转会名单(22日改)
- js json数组_JaveScript对象篇和数组篇
- 更新智能开发研发进度
- 贺利坚老师汇编课程70笔记:端口的读写
- handler更新ui线程的基本用法
- 上传文件_Spring Boot文件上传
- XMPP tigase 8.0 与 strophe.js 测试Web聊天服务/即时通信
- 老饼教你深入浅出理解-《牛顿法求极值》
- 计算机雕刻教学设计,综合实践《果蔬雕刻》教学设计第一课时
- 【微信公众号-订阅号发送群发消息】
- 常见For 循环优化方式总结——提高效率小妙招
热门文章
- 好看视频上传软件批量发布视频讲解
- 内容生态与新业务双突破,汽车之家反转逻辑将延续
- 如何才能让手机厂商主动拥抱华为,接入鸿蒙系统?
- Burpsuite专题学习指南
- 面试官:反射都不会,还敢说自己会Java?
- VB6里判断是否64位系统
- 关于reverse函数
- FANUC机器人_通过ROBOGUIDE从零开始做一个离线仿真项目(1)
- 米家机扫拖机器人说明书_【米家扫拖机器人1C怎么样使用体验】动态导航|缓冲模块|电控水箱|红外发射|APP_摘要频道_什么值得买...
- iStylePDF产品综合解决方案之电子合同在线订立