Raspberry Pi 4B编译安装Qt5.9.3

前言

目前大部分 Linux 系统都提供了 Qt 的安装包,通常我们可以直接通过指令从软件源下载。Qt 作为常用的软件,大部分操作系统亦会提供。但是,若我们想安装指定的版本。通常是没有的,这可咋办?

自己动手丰衣足食

  • 安装源指定的 Qtqtcreator,下载目标版本的 Qt 源码,编译安装后在 Qtcreator 中构建目标版本的Kit套件即可。
  • 下载编译 Qt 源码,生成 qmake,下载 Qtcreator 源码并使用 Qt 编译。

本文选用的是 第一种

Raspberry Pi 安装Qt

以下三步更新操作按需执行:

# 更新源列表
sudo apt-get update
# 更新软件
sudo apt-get upgrade
# 更新内核和固件
sudo rpi-update

Qt及Qtcreator安装

sudo apt-get install qt5-default
sudo apt-get install qtcreator

注意:Qtcreator是Qt编译的QtIED,他们是独立的。

编译安装指定Qt版本

下载源码

清华镜像-qt

我的下载路径是:/qt/archive/qt/5.9/5.9.3/single/qt-everywhere-opensource-src-5.9.3.tar.xz

解压

tar xvf qt-everywhere-src-5.9.3.tar.xz 

安装依赖

sudo apt-get install libncurses5-dev libreadline-dev libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-glx0-dev

编译设置

./configure -prefix /home/pi/SW/Qt5.9.3 -debug -skip qtdeclarative -opensource -confirm-license -no-openssl -no-opengl -nomake examples -nomake tests -qt-xcb -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -no-compile-examples

解释一下:

  • - prefixmake install 的安装路径,如果不指定,就会安装到默认的 /usr/local/
  • -debug 是编译 debug版本的Qt
  • -opensource 是选定开源版本
  • -confirm-license 是确定下协议
  • -nomake examples -nomake tests 可以减少编译,以加快编译速度

make and install

由于编译非常慢,这里我们利用 CPU4核 编译;尽管如此,也至少需要 4h

make -j4

编译完成后,我们需要进行安装

sudo make install

若我们设置时指定了 prefix ,则将安装到 prefix目录 ,否则安装到默认路径。

验证

进入 bin 目录,执行

./qmake -v

查看 Qt 版本是否与预期一致

新建 Kit套件 ,选择我们编译的 qmake

然后新建工程以验证,验证时出现了找不到 fonts 的问题。

字体无法显示的问题

根据错误提示,cd 到相应路径,创建文件夹 fonts

sudo mkdir fonts

在本机搜索字体文件

sudo find / -name "*.ttf"
#亦或 
sudo find / -name "fonts"

将字体文件复制到刚刚创建的 fonts 目录下

cp /xx/xxx/xx.ttf xxx/xxx/lib/fonts

参考鸣谢

Linux搭建Qt5.14的开发环境-源码编译

Qt for Linux:树莓派3配置Qt开发环境(Qt 5.9.1 和 OpenCV 2.4.13)

Important: Please read the Qt Code of Conduct

你可能感兴趣的:(Qt,Qt,树莓派)