Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 523|回复: 0

解决Linux下Qt编译出现"cannot find -lGL"以及无法安装libgl1-mesa-dev的问题

[复制链接]
  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 757 天

    [LV.10]以坛为家III

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    707886
    发表于 2021-7-21 15:33:37 | 显示全部楼层 |阅读模式

    在Linux系统下安装好Qt5,打开Qt Creator新建一个最简单的工程,编译却出现"cannot find -lGL"错误。



    在网上搜索解决方法,找到的方案基本上是安装libgl1-mesa-dev,如通过apt-get install libgl1-mesa-dev安装,但是在我自己的系统上尝试这条命令,无论怎么安装都会出现一大堆依赖错误,按照缺少的依赖一个个尝试安装,结果只会 出现越来越多的依赖错误。在Ubuntu软件中心下载libgl1-mesa-dev的deb包也是无法安装的,同样是一大堆依赖错误。

    如果使用aptitude命令尝试安装libgl1-mesa-dev,则aptitude给出的解决依赖错误的方案竟然是将ubuntu-desktop和xorg等软件删除!这样在libgl1-mesa-dev以后,你的Linux系统将会无法再开机!我因为安装libgl1-mesa-dev使我的Linux系统崩溃了数次。


    后来找到的另外一个方法是,搜索系统中已经存在的libgl1-mesa-dev相关文件。libgl1-mesa-dev是有关OpenGL的库。

    使用locate libGL命令或find /usr -name libGL*命令搜索。

    搜索结果中发现/usr/lib/i386-linux-gnu/mesa/libGL.so.1文件(这个文件也可能在另一个目录中)。

    然后使用ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so命令给已存在的库文件创建一个链接到/usr/lib目录。



    然后在Qt Creator中再次编译工程,错误消失。




    但是如果在代码中加入其他Qt模块,如include <QtGui> <QtWidgets>等,将会出现新问题:找不到GL/gl.h文件。




    通过追踪错误来源,发现在QtGui模块的头文件中有包含GL/gl.h的部分,此时在include <QtGui> <QtWidgets>等命令前加上#define QT_NO_OPENGL,则可解决问题。



    最后分析,一开始Qt找不到的库文件是OpenGL的库,而Qt默认包含了OpenGL库,因此在没有安装OpenGL库时编译Qt程序,则会出现 错误。而无法安装libgl1-mesa-dev,有可能与系统中已经存在的OpenGL相关文件冲突有关。此问题出现在虚拟机Ubuntu中,在真机上 的Linux系统暂时没有遇到。个人猜测有可能与Vmware tools有关,因为我遇到的另一个gtk的lib依赖错误也似乎与它有关,Vmware tools程序中包含一些与显示有关的驱动,不知道这是不是造成冲突的原因。如果需要同时开发Qt和OpenGL的,又遇到了这个问题的话,建议重新安装 一次Linux系统,并在安装Vmware tools之前谨慎考虑,再尝试安装Qt和libgl1-mesa-dev。

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-7-5 02:05 , Processed in 0.066355 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表