初次使用Qt时遇到的几个坑

1. error:cannot find -lGL

原因分析: 在已经安装openGL库的前提下出现这种错误,是因为libGL没有正确链接:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
sun@sun-msi:/opt/busybox-1.31.0$ locate libGL
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGL.so.1
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGL.so.1.0.0
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGLX.so.0
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGLX.so.0.0.0
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGLX_indirect.so.0
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0
/snap/gnome-3-28-1804/91/usr/lib/x86_64-linux-gnu/libGLdispatch.so.0.0.0
/usr/lib/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so.1.0.0
/usr/lib/i386-linux-gnu/libGLU.so.1
/usr/lib/i386-linux-gnu/libGLU.so.1.3.1
/usr/lib/i386-linux-gnu/libGLX.so.0
/usr/lib/i386-linux-gnu/libGLX.so.0.0.0
/usr/lib/i386-linux-gnu/libGLX_indirect.so.0
/usr/lib/i386-linux-gnu/libGLX_mesa.so.0
/usr/lib/i386-linux-gnu/libGLX_mesa.so.0.0.0
/usr/lib/i386-linux-gnu/libGLdispatch.so.0
/usr/lib/i386-linux-gnu/libGLdispatch.so.0.0.0
/usr/lib/x86_64-linux-gnu/libGL.la
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so.1.7.0
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1.0.0
/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1.2.0

这里有很多libGL的路径,随便找一个链接就可以

1
sun@sun-msi:/opt/busybox-1.31.0$ sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1

2.qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt5/bin/qmake': No such file or directory

原因:qtchooser默认选择路径中没有指向qmake路径

修改配置文件,修改为Qt路径:

1
sun@sun-msi:~$ sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

将default.conf的内容删除并键入:

1
2
/opt/Qt5.13.1/5.13.1/gcc_64/bin
/opt/Qt5.13.1/5.13.1

保存退出后,进行测试:

1
2
3
sun@sun-msi:~$ qmake -v
QMake version 3.1
Using Qt version 5.13.1 in /opt/Qt5.13.1/5.13.1/gcc_64/lib

配置成功

3. fatal error: QApplication:No such file or directory

在使用make构建程序时报错
在这里插入图片描述
原因:Qt5将大部分桌面部件移到了Qt Widgets模块中,即QApplication已经从原来的<QtGui/QApplication>移动到<QtWidgets/QApplication>

解决方案:修改.pro文件,加入一段代码:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
在这里插入图片描述