Linux下QT、cannot find -lGL、
近日在虚拟机下的QT5.11.2安装出现了一个bug,折腾好久才搞定。
环境:vmware + debain 9.5 + qt5.11.2 。 QT_DIR = /Qt5.11.2/5.11.2/gcc_64/mkspecs

找了各大网站、博客,基本都是说直接安装openGL的,然而我的虚拟机安装openGl总是出各种错。未果。
这里推荐这篇博文的解决方案: https://www.cnblogs.com/chujian1120/p/5460772.html
如果能够解决就不要继续往下看了,但是,如果find找不到libGL的动态库,那么就要继续往下看了。
参考 https://www.cnblogs.com/coding-my-life/p/5677256.html
总的来说就是,我们写的简单项目可能大部分用不到OpenGL,但是GUI模块是默认包含OpenGL的,我们看API就知道。

只要是GUI工程,就默认给Makefile加上-lGL的编译选项。
报错的根源就在于Makefile文件中多了一个-lGL的编译选项。

我们可以自己用qmake命令,去生成Makefile文件。
所以我们要做的就是把这个-lGL给干掉。
太长不看版:直接修改{QT_DIR}/modules/qt_lib_gui_private.pri,去掉第15行的 -lGL 即可,再次生成的Makefile中不会再出现 -lGL。
首先我们得知道qmake生成的makefile为啥会有这个-lGL,
要了解这个,首先我们得了解一些qmake的原理和配置。我也只是了解个皮毛,具体还是需要去看手册和脚本。
我的简单理解,就是通过一系列的脚本文件来生成与对应的pro文件和Makefile文件。
默认生成的pro文件中自带 gui 和 core 模块。而这两个模块的配置文件在 {QT_DIR}/modules文件夹下。
由于我们的是qt项目,所以qmake会去{QT_DIR}/features/文件夹下去找配置文件;之后会调用qt_module_pris.prf文件,这个文件中又会逐一去调用各个模块的pri文件;我们这里的是qt_lib_gui_private.pri。
以后如果需要写prf 文件,pri文件,QT自带的文件会是一个很好的参考。
Linux下QT、cannot find -lGL、的更多相关文章
- Linux下Qt的安装与配置
参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...
- linux下QT Creator常见错误及解决办法
最近因为在做一个关于linux下计算机取证的小项目,需要写一个图形界面,所以想到了用QT来写,选用了linux下的集成开发环境QT Creator5.5.1,但刚刚安装好,竟然连一个"hel ...
- Linux下Qt应用程序的发布(使用LDD命令查看所有依赖的库文件)
最近一直在学习Qt,用Qt写了一个程序,但是不知道怎么发布,网上说的都是在windows下怎么发布Qt应用程序,但是,在windows下Qt应用程序依赖的库文件与linux下的名字不同.于是,我就想到 ...
- 中标麒麟(linux)下Qt调用python
转自:https://blog.csdn.net/lwlgzy/article/details/83857297 http://www.cnblogs.com/jiaping/p/6321859.ht ...
- 【Qt开发】Linux下Qt开发环境的安装与集成
近期工作需要在Linux下用Qt进行C++开发,所以就在linux下尝试装QT开发环境.本人用的linux是CentOS 6.5.现在对安装过程做出总结.有两种安装方式,下面分别详述: 1 图形化安装 ...
- Linux下Qt创建共享库与链接共享库详解
随着程序写的逐渐变多,或多或少的我们都会使用别人写好的库:或者我们不想让别人看到我们的一些核心程序,可以将核心程序封装成库.本次和大家分享的是在Ubuntu下使用Qt生成共享库以及在Qt中链接共享库的 ...
- Linux 下Qt实现守护进程实例(转)
原文地址:Linux守护进程的编程方法(含实例) 作者:lingdxuyan 参考文献 Linux信号列表(zz) Linux 守护进程的编程方法 linux上编写守护进程的例程 Linux下后台守 ...
- 解决Linux下Qt编译出现"cannot find -lGL"以及无法安装libgl1-mesa-dev的问题
在Linux系统下安装好Qt5,打开Qt Creator新建一个最简单的工程,编译却出现"cannot find -lGL"错误. 在网上搜索解决方法,找到的方案基本上是安装lib ...
- linux下Qt问题cannot find -lGL collect2: error: ld returned 1 exit status
fedora下解决 yum groupinstall "Development Tools" yum install mesa-libGL-devel ubuntu下解决 sudo ...
随机推荐
- SimpleDateFormat并发隐患及其解决
此文已由作者姚太行授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. SimpleDateFormat被大量使用于处理时间格式化过程,由于该类在创建时会指定一个pattern用于 ...
- 拓扑排序+DFS(POJ1270)
[日后练手](非解题) 拓扑排序+DFS(POJ1270) #include<stdio.h> #include<iostream> #include<cstdio> ...
- 骨骼蒙皮动画(Skinned Mesh)的原理解析(二)
http://blog.csdn.net/jimoshuicao/article/details/9283071 2)蒙皮信息和蒙皮过程 2-1)Skin info的定义 上文曾讨论过,Skinned ...
- poj 2774 Long Long Message【SA】
把两个串接到一起求一个SA,然后找最大的sa[i]和sa[i-1]不是一个串的he[i] #include<iostream> #include<cstdio> #includ ...
- vue的方法和计算属性的区别
首先看看 methods 方法 // html <div id="vue"> <button v-on:click = "a++">ad ...
- Oracle 单引号与双引号的区别
双引号一般是用来转义的,如果alias里面有空格或其它保留符号,必须使用双引号.而单引号是用来特制的,比如字符串的引用,日期字符串的引用,都必须包括在单引号中,可以参与运算或其它表达式中.两者不可混用 ...
- Qt文本读写之一:输入输出设备和文件操作
一.输入输出设备 QIODevice类是Qt中所有I/O设备的基础接口类,为诸如QFile.QBuffer和 QTcpSocket等支持读/写数据块的设备提供了一个抽象接口.QIODevice类是抽象 ...
- 【Tsinsen】A1280. 最长双回文串
Bryce1010模板 http://www.tsinsen.com/A1280### 题目分析:记录一个点向后和向前的最长回文串,然后就是max(Llen[i]+Rlen[i+1])了. #incl ...
- sh 脚本报错
sh 脚本报错 思路如下: 1.建议按照手工方式运行该脚本. 2.加入-x 方式查看脚本的输出.
- NFS与AutoNFS实例
NFS概述: NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文 ...