ubuntu18.04 交叉编译树莓派3b+ 下的 qt5.12.3

交叉编译的系统Ubuntu18.04
树莓派型号:3B+
树莓派系统:2020-02-13-raspbian-buster
QT版本:5.12.3
下面的步骤中【home】代表在ubuntu18.04上执行的命令【rpi】代表在树莓派上执行的命令
1【rpi】安装树莓派系统
2【rpi】安装依赖

sudo apt-get update
sudo apt-get install libxcb-xinerama0-dev
sudo apt-get install build-essential perl python git
sudo apt-get install libx11-dev libxcb1-dev libxkbcommon-x11-dev libx11-xcb-dev libxext-dev
sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0

3【rpi】解决opengl库冲突的问题【树莓派4不需要,未验证】

sudo mv /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0_backup
sudo mv /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0_backup
sudo ln -s /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
sudo ln -s /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
sudo ln -s /opt/vc/lib/libbrcmEGL.so /opt/vc/lib/libEGL.so
sudo ln -s /opt/vc/lib/libbrcmGLESv2.so /opt/vc/lib/libGLESv2.so

【home】下载交叉编译工具到/opt下

cd /opt/
git clone git://github.com/raspberrypi/tools.git
mv tools raspberrypi_tools

该工具链中包含了制作镜像的工具,编译器,测试代码等等,其实我们只用到了编译器,因ubuntu是64位的,所以使用x64的,若是32位,则直接使用不带x64尾缀下的即可。
将bin目录添加到环境变量PATH中

【home】将树莓派下的所有库文件和头文件拷贝到电脑上

cd ~
mkdir work
cd work 
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

注:raspberrypi_ip是树莓派的IP地址。
接下来,调整一下符号链接,因为目录下的文件是从树莓派同步过来的,链接部分都是失效的,需要重新链接

wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
chmod +x sysroot-relativelinks.py
./sysroot-relativelinks.py sysroot

【home】准备编译

./configure -release -opengl es2 -device linux-rasp3-pi-g++ -device-option CROSS_COMPILE=/opt/raspberrypi_tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/work/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -make libs -prefix /usr/local/qt5pi -extprefix ~/work/qt5pi -hostprefix /usr/local/qt5pi -no-use-gold-linker -v -no-gbm -linuxfb -qpa eglfs
make -j4
make install

参考链接:
https://wiki.qt.io/RaspberryPi2EGLFS
https://www.tal.org/tutorials/building-qt-512-raspberry-pi

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