硬件
基于树莓派3b+ qt5.12.4. PC(ubuntu18 64位), 树莓派(Raspbian Stretcheith desktop)
准备工作
树莓派
1.更新固件
sudo rpi-update
reboot
2.配置
sudo raspi-config
#1. 打开SSH协议
#2. 调整GPU显存
#3. 打开硬件加速
3. 取消sources.list 文件中的注释deb-src这行
sudo leafpad /etc/apt/sources.list
4. 下载需要的开发包
sudo apt-get update
sudo apt-get build-dep qt4-x11
sudo apt-get build-dep libqt5gui5
sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 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 bluez libbluetooth-dev build-essential
5. 准备目标文件夹
sudo mkdir /usr/local/Qt5.12.4
sudo mkdir pi:pi /usr/local/Qt5.12.4
sudo chmod -R 777 /opt
sudo apt-get install gdbserver
6. 增加分辨率
sudo nano ~/.profile
添加:
export QT_QPA_EGLFS_PHYSICAL_WIDTH=1920
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=1080
source .profile
PC
1. 在电脑上创建工作文件夹
mkdir ~/raspi
cd ~/raspi
- 交叉编译工具链
- 看看有没有C/C++编译环境
sudo apt-get install build-essential
- 使64位系统兼容32位的库:
sudo apt install lib32ncurses5 lib32z1
- 创建和配置sysroot
mkdir sysroot sysroot/usr sysroot/opt
rsync -avz pi@raspberrypi_ip:/lib sysroot
rsync -avz pi@raspberrypi_ip:/usr/include sysroot/usr
rsync -avz pi@raspberrypi_ip:/usr/lib sysroot/usr
rsync -avz pi@raspberrypi_ip:/opt/vc sysroot/opt
wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
chmod +x sysroot-relativelinks.py
./sysroot-relativelinks.py sysroot
- 配置Qt
编辑./qtbase/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf文件:
1. 分别将所有的-LEGL替换成-LbrcmEGL, -LGLESv2替换成-LbrcmGLESv2.
2. 修正文件中的4处错误,修正后如下:
VC_LIBRARY_PATH = $$[QT_SYSROOT]/opt/vc/lib
VC_INCLUDE_PATH = $$[QT_SYSROOT]/opt/vc/include
VC_LINK_LINE = -L$${VC_LIBRARY_PATH}
QMAKE_LIBDIR_OPENGL_ES2 = $${VC_LIBRARY_PATH}
- 配置qt库:
./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=/home/Arm/linaro/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /home/Arm/linaro/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -make libs -prefix /usr/local/Qt5.12.4 -extprefix /home/Arm/linaro/Qt5.12.4 -hostprefix /home/Arm/linaro/Qt5.12.4-host -no-use-gold-linker -v -no-gbm -skip qtwebengine
make -j4
make install
rsync -avz Qt5.12.4 pi@raspberrypi_ip:/usr/local
- 修复Qt的eglfs_brcm后端正在使用vchiq设备
修改后就可以在不启用桌面的情况下运行qt界面
#修改
/boot/config.txt
注释掉dtoverlay=vc4-kms-v3d
- 添加字体库
#下载字体库
sudo apt-get install ttf-wqy-zenhei
#复制字体库到qt字体库目录
# 中文字库
sudo cp
/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc /usr/local/Qt5.12.4/lib/fonts
# 英文字库
sudo cp
/usr/share/fonts/truetype/dejavu/* /usr/local/Qt5.12.4/lib/fonts