1. 更换国内软件源
某些软件或支持库需要更换国内源之后才能安装(如果不更换国内源,把#deb-src取消注释)。编辑/etc/apt/sources.list文件,改成如下内容:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
然后更新软件列表:
sudo apt-get update
2. 添加NTFS支持
编译Qt库需要比较大的存储空间,如果外接了NTFS格式的U盘或移动硬盘,首先要在树莓派上增加NTFS支持,否则U盘或移动硬盘就只能读不能写了。执行如下命令:
sudo apt-get install ntfs-3g
reboot
3. 增加交换内存
cd /var
关闭交换内存
sudo swapoff /var/swap
设置1M * 2048 = 2G内存
sudo dd if=/dev/zero of=swap bs=1M count=2048
格式化
sudo mkswap /var/swap
开启交换内存
sudo swapon /var/swap
查看当前已生效的交换内存
swapon -s
查看当前交换内存使用情况
free -m
4. 准备Qt源代码
在https://github.com/oniongarlic/qt-raspberrypi-configuration.git下载树莓派的编译配置文件。解压后放到Qt的源代码中。具体为:
common/raspberrypi.conf 放到 /qtbase/mkspecs/common/
linux-rpi2-g++ , linux-rpi3-g++ , linux-rpi-g++ , linux-rpi-vc4-g++ , linux-rpi4-v3d-g++ 这4个文件夹放到 /qtbase/mkspecs/
5. 安装必需的库
sudo apt-get install build-essential libfontconfig1-dev libdbus-1-dev libfreetype6-dev libicu-dev libinput-dev libxkbcommon-dev libsqlite3-dev libssl-dev libpng-dev libjpeg-dev libglib2.0-dev libraspberrypi-dev libpq-dev libmariadbclient-dev libmariadb-dev-compat libts-dev bluez libbluetooth-dev libx11-dev libxcb1-dev libxkbcommon-x11-dev libx11-xcb-dev libxext-dev
6. 配置Qt源代码
configure如下:
./configure -platform linux-rpi3-g++ -v -opengl es2 -eglfs -no-gtk -opensource -confirm-license -release -reduce-exports -force-pkg-config -nomake examples -no-compile-examples -skip qtwayland -skip qtwebengine -skip qtscript -no-feature-geoservices_mapboxgl -qt-pcre -no-pch -ssl -tslib -evdev -system-freetype -fontconfig -glib -prefix /opt/Qt5.13.2 -qpa eglfs -recheck-all
配置完成后检查EGLFS Rasberry Pi是否为yes:
QPA backends:
DirectFB ............................... no
EGLFS .................................. yes
EGLFS details:
...
EGLFS Rasberry Pi .................... yes
7. 编译并安装Qt
编译并安装,此步可能需要几个小时。
make
make install
结束后/opt/Qt5.13.2就是编译好的库。