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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章