Linux(Ubuntu) 环境下安装 Qt

真蠢,之前费那么大劲,只要一句命令就完事了

下载安装

sudo apt install qtcreator

但是在用命令行构建 project 时可能会报错

qmake -project
could not find a Qt installation of ''

这时候需要

sudo apt-get install qt5-default 

好了可以愉快玩耍了。


瞎折腾

下载 Qt

从 Qt5.15.0 起,对于开源用户,Qt 官方不再提供独立安装文件,且不再有 bug 修复版本(比如 Qt5.15.1),如果从官网下载,需要自己编译。虽然想试试编译,但是虚拟机刚开始开的空间太小了,还是另寻他法吧。以后有机会再来编译试试新功能。若读者有兴趣可以从官网下载源码并编译。或者参考官方的编译教程,从 GitHub 上下载。

国内有一些镜像站,提供 qt 镜像下载:
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/
中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
北京理工大学:https://mirrors.cnnic.cn/qt/

以清华大学的镜像为例,找到archive/qt/5.14/5.14.0/qt-opensource-linux-x64-5.14.0.run,点击即可开始下载。

qt 5.15 已经不提供安装包,想要最新版本,只能下 5.14,但是 5.14.2 下载没资源,下不动,如果遇到下不动的情况换一个版本吧

安装 Qt

下载的.run文件双击是无法安装的,因为它还没有可执行的权限,需要我们赋给它执行权限,打开终端进入安装包的目录。

chmod +x filename.run

chmod命令是控制用户对文件的权限修改的命令,x是可执行权限的参数。
执行以上命令后就可以直接双击安装了。

网上一些教程可以跳过登录,我没找到跳过按钮,需要注册一个账号才能继续安装。

安装目录一般选择在/opt目录下

安装的附加组件最好都选择,以免后期使用再安装麻烦。Qt Creator 肯定要装的。

安装依赖库

apt-get install g++
apt-get install libgl1-mesa-dev
apt-get install libqt4-dev
apt-get install build-essential # Build Essential,它是一个元软件包,可让您在Ubuntu中安装和使用c ++工具。
sudo apt install qt5-default # 如果要将Qt 5用作默认的Qt Creator版本需要安装,否则会报 qmake: could not find a Qt installation of ''的错误

使用 Qt Creator 创建第一个程序

使用 Qt Creator 创建

首先我们先创建一个不带窗口的 HelloWorld 程序,测试安装是否成功,打开 Qt Creator-文件 - 新建文件或项目,选择 Non-Qt Project-Plain C++ Application。

接下来就设置项目名等,一直下一步。完成后就可以在编辑器看到如下

点击左下角运行按钮就可以得到如下:

再创建一个带窗口的 HelloWorld,在选择模板时选择 Application-Qt Widgets Application。一路点下一步就可以完成创建,运行后就可得到一个灰白的 HelloWorld 窗口。

命令行编译第一个 Qt 程序

首先创建工作目录HelloWorldQt

mkdir HelloWorld

进入项目目录下,新建一个main.cpp文件

cd HelloWorldQt
vim main.cpp

编辑以下内容:

#include <QApplication>
#include <QLabel>
#include <QWidget>

int main(int argc, char *argv[ ])
{
    QApplication app(argc, argv);
    QLabel hello("<center>Welcome to my first Qt program</center>");
    hello.setWindowTitle("My First Qt Program");
    hello.resize(400, 400);
    hello.show();
    return app.exec();
}

建立 QtProject 文件

qmake -project

vim打开HelloWorldQt.pro文件,添加以下内容

QT += gui widgets


运行qmake,使项目 platform-specific,会得到一个Makefile文件

qmake HelloWorldQt.pro 

使用make命令将Makefile编译为可执行程序

➜  HelloWorldQt make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS / 
-DQT_NO_DEBUG -DQT_WIDGETS_LIB /
-DQT_GUI_LIB -DQT_CORE_LIB -I. / 
-I. -isystem / 
/usr/include/x86_64-linux-gnu/qt5 -isystem / 
/usr/include/x86_64-linux-gnu/qt5/QtWidgets /
-isystem /usr/include/x86_64-linux-gnu/qt5/QtGui /
-isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. /
-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o main.o main.cpp
g++ -Wl,-O1 -o HelloWorldQt main.o  /
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so /
/usr/lib/x86_64-linux-gnu/libQt5Gui.so / 
/usr/lib/x86_64-linux-gnu/libQt5Core.so /
/usr/lib/x86_64-linux-gnu/libGL.so -lpthread 

如果一切顺利,执行可以得到如下

./HelloWorldQt