在树莓派上编译Qt 5.13.2

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就是编译好的库。

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