linux qt需要构造套件,Linux QT交叉编译树莓派4的可执行程序

本文主要实现在Linux QT上编译树莓派4的可执行程序。可对树莓派上的程序进行编译调试,解决了树莓派上编译调试不便的问题。

一、前期准备

1.VMPlayer虚拟机安装Ubuntu16.04.6的操作系统

2.树莓派4安装2020-02-13-raspbian-buster操作系统

二、【On Rpi4】

第一步:

sudo nano /etc/apt/sources.list

将deb-src的注释删掉,保存更新后安装需要的文件包

sudo apt-get update

sudo apt-get build-dep qt4-x11

sudo apt-get build-dep qtbase-opensource-src

sudo apt-get install libegl1-mesa libegl1-mesa-dev libgles2-mesa libgles2-mesa-dev

以下操作可选

sudo apt-get install wiringpi libnfc-bin libnfc-dev fonts-texgyre libts-dev

如果需要使用到QtMultimedia可选

sudo apt-get install libbluetooth-dev bluez-tools gstreamer1.0-plugins* libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libopenal-data libsndio7.0 libopenal1 libopenal-dev pulseaudio

第二步:

将用户pi添加到render组

sudo gpasswd -a pi render

第三步:

设置创建目标文件夹,之后Linux主机生成库将放在这里

sudo mkdir /usr/local/qt5pi

sudo chown pi:pi /usr/local/qt5pi

三、【On Linux】

第一步:创建工作目录

mkdir ~/raspi

cd ~/raspi

git clone https://github.com/raspberrypi/tools

第二步:创建同步目录,同步编译时用到的树莓派上的库。此处需要树莓派开启ssh服务,之后的文件同步也在这个目录

mkdir sysroot sysroot/usr

rsync -avz pi@yourpi:/lib sysroot

rsync -avz pi@yourpi:/usr/include sysroot/usr

rsync -avz pi@yourpi:/usr/lib sysroot/usr

第三步:获取脚本,对文件进行链接

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

chmod +x sysroot-relativelinks.py

./sysroot-relativelinks.py sysroot

第四步:下载Qt源文件

git clone git://code.qt.io/qt/qtbase.git -b 5.12.6

cd qtbase

第五步:对第四步的源文件进行编译构造安装

./configure -release -opengl es2 -device linux-rasp-pi3-vc4-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v

make -j4

make install

第六步:将编译好的Qt文件同步到树莓派上,只需要同步~/raspi/qt5pi

rsync -avz qt5pi pi@yourpi:/usr/local

三、【On Rpi4】

更新树莓派,使它运行可执行文件时可以找到编译好的lib库

echo /usr/local/qt5pi/lib | sudo tee /etc/ld.so.conf.d/qt5pi.conf

sudo ldconfig

四、【On Linux】

第一步:安装Qt编辑器

sudo apt-get install qtcreator

第二步:打开Qt Creator选择工具–>选项–>设备–>添加–>通用Linux设备

a9d194caa42407e0612b0875ff54926a.png

第三步:填写树莓派的IP地址、用户名和密码

462c958f510dfdd566df874a53219b8c.png

完成设备添加,点击右边Test按钮测试能否成功连接树莓派

35d0054da64cd875d123671a53450d4d.png

第四步:选择构建和运行,添加编译器,设置名称和编译器路径

GCC C的路径:~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/bin/gcc

GCC C++ 的路径: ~/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb

d03bca7e975207b8eb7a65fb9edb9ae6.png

第五步:选择Qt Versions

添加qmake路径

a6f0438dd22ee487ee3332ab00235ac4.png

第六步:选择Debuggers

Path:~/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb

8191b90afa00de1896609b0bfd24c4a2.png

第七步:选择构建套件

设置名称、设备类型、Sysroot、编译器、调试器、Qt版本

3b9a7206e5c76d6a7761eafb17038a69.png

五、测试

至此,全部配置完成,在Linux上打开Qt Creator选择配置好的套件

35b0249de2d4918928e02023c0b7f551.png

写一段简单的程序,在.pro文件最后加上`

target.path = /home/pi

INSTALLS += target

点击编译运行,就可以在树莓派/home/pi的位置看到可执行文件了

六、参考

1.http://wapel.de/?p=641

2.https://mechatronicsblog.com/cross-compile-and-deploy-qt-5-12-for-raspberry-pi/

3.https://medium.com/@amirmann/how-to-cross-compile-qt-for-raspberry-pi-3-on-linux-ubuntu-for-beginners-75acf2a078c

4.https://wiki.qt.io/Raspberry_Pi_Beginners_Guide

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值