树莓派版本及下载地址
莓派使用的版本:2020-08-20-raspios-buster-arm64.zip
下载地址:downloads.raspberrypi.org/raspios_arm64/images
一、修改源
修改/etc/apt/sources.list,去掉自带的源,添加如下源
#以下源也可使用
deb http://mirrors.tuna.tsinghua.edu.cn/debian buster main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian buster-updates main contrib non-free
修改:/etc/apt/sources.list.d/raspi.list,去掉自带的源,添加如下源:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
二、安装Qt5及QtCreator、谷歌拼音
sudo apt-get install -y fcitx fcitx-googlepinyin
sudo apt-get install qt5-default
sudo apt-get install qtcreator
sudo apt-get gcc
sudo apt-get g++
三、编译Qt5.12.5源码
1) 下载源码
在官方网站:Index of /archive/qt/5.12/5.12.5/single上下载qt-everywhere-src-5.12.5.tar.xz
2) 解压
tar -xvf qt-everywhere-src-5.12.5.tar.gz
3) 安装依赖
- 安装flex词法分析器和bison语法分析器
-
sudo apt-get install flex bison gperf -y sudo apt-get install bison
- 安装gperf哈希函数生成器
-
sudo apt-get install gperf
- 安装OpenGL
-
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut3-dev -y sudo apt-get install libgl1-mesa-dev sudo apt-get install libglu1-mesa-dev sudo apt-get install libegl1-mesa-dev sudo apt-get install freeglut3-dev
- 安装llvm(如果不用QDoc则不需要安装。强烈不建议安装,费时费力费空间)
- 安装openssl
-
sudo apt-get install openssl libssl-dev -y sudo apt-get install libssl-dev
-
4) 执行configure
强烈不建议在Qt源码的目录下直接进行编译,那样会污染源码所在目录。建议在Qt源码所在的同级目录下,新建一个文件夹用来存放编译过程中产生的临时文件。
-
mkdir qt-5.12.5-build
进入qt-5.12.5-build文件夹执行configure。-release是选择模式,-prefix /opt/qt-5.12.5指定编译之后库文件的安装位置为/opt/qt-5.12.5-install(完整路径是/home/username/opt/qt-5.12.5-install,一般源码包都会安装到系统opt目录下)。安装位置可自行更改。
$ cd qt-5.12.5-build //安装到系统opt目录下 ~/qt-5.12.5-build$ ./../qt-everywhere-src-5.12.5/configure -release -prefix /opt/qt-5.12.5 //安装到源码同级目录下 ~/qt-5.12.5-build$ ./../qt-everywhere-src-5.12.5/configure -release -prefix ../qt-5.12.5 /// ./configure --prefix=/opt/Qt/5.12.2 -confirm-license -release -opensource -qt-xcb
-
sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcd-xinerama-dev libxkbcommon-dev libxkbcommon-x11-dev
-
如果configure的结果出现:
WARNING solutions Could not find qmake spec " . 检查源码路径是否包含中文 WARNING: gperf is required to build QWebEngine sudo apt-get install gperf WARNING: flex is required to build QWebEngine sudo apt-get install flex WARNING: bison is required to build QWebEngine sudo apt-get install bison WARNING: QDoc will not be compiled install llvm ERROR: The OpenGL functionality tests failed! install OpenGL NOTE: No wayland-egl support detected. Cross-toolkit compatibility disabled. sudo apt-get install libegl1-mesa-dev
安装好对应依赖库后,需要进入qt-5.12.5-build文件夹执行rm config.cache以删除之前缓存的配置,然后再次执行configure。 -
5) 执行make
这一过程大约需要半小时到4个小时不等。
-
~/qt-5.12.5-build$ make
6) 执行make install
命令前加上
sudo
保证安装文件夹不存在时自动创建。大概几分钟完成。 -
~/qt-5.12.5-build$ sudo make install
7) 修改环境变量
在终端输入:
-
sudo gedit ~/.profile(or .bashrc)
在打开的文件末尾加上下面的内容(
/opt/qt-5.12.5-install
是指定的库文件安装位置),保存修改并重启虚拟机。 -
export QTDIR=/opt/qt-5.12.5-install export PATH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
在终端输入
qmake -v
,出现QMake版本信息,说明qt源码编译并安装成功。
四、编译GCC10.4.0
1、下载最新的依赖库
wget http://ftp.gnu.org/gnu/mpc/mpc-1.2.1.tar.gz
tar -zxvf mpc-1.2.1.tar.gz
wget http://ftp.gnu.org/gnu/mpfr/mpfr-4.1.0.tar.gz
tar -zxvf mpfr-4.1.0.tar.gz
wget http://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.bz2
tar -xjf gmp-6.2.1.tar.bz2
2、gmp编译、mpfr编译、mpc编译、gcc编译
./configure --prefix=/usr/local/gmp-6.2.1
./configure --prefix=/usr/local/mpfr-4.1.0 --with-gmp=/usr/local/gmp-6.2.1
./configure --prefix=/usr/local/mpc-1.2.1 --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0
./configure --prefix=/usr/local/gcc-10.4.0 --with-gmp=/usr/local/gmp-6.2.1 --with-mpfr=/usr/local/mpfr-4.1.0 --with-mpc=/usr/local/mpc-1.2.1
五、增加模块qapng
add_library(Qt5::ApngImagePlugin MODULE IMPORTED)
_populate_Gui_plugin_properties(ApngImagePlugin RELEASE "imageformats/qapng.dll" TRUE)
_populate_Gui_plugin_properties(ApngImagePlugin DEBUG "imageformats/qapngd.dll" TRUE)
list(APPEND Qt5Gui_PLUGINS Qt5::ApngImagePlugin)
set_property(TARGET Qt5::Gui APPEND PROPERTY QT_ALL_PLUGINS_imageformats Qt5::ApngImagePlugin)
set_property(TARGET Qt5::ApngImagePlugin PROPERTY QT_PLUGIN_TYPE "imageformats")
set_property(TARGET Qt5::ApngImagePlugin PROPERTY QT_PLUGIN_EXTENDS "")