ubuntu20.04交叉编译移植OpenCV4.7.0和QT5.12.12至ARM64位平台LKD3588(开发板为ubuntu20.04系统)(二)

17 篇文章 4 订阅 ¥29.90 ¥99.00
本文详述了如何在Ubuntu20.04上交叉编译OpenCV4.7.0和QT5.12.12,以解决GTK问题并部署到ARM64位LKD3588开发板。首先,交叉编译tslib,接着配置并编译QT,创建并修改环境变量,将编译结果移植到开发板,并校准触摸屏。最后,介绍了QT环境的验证和程序部署的注意事项。
摘要由CSDN通过智能技术生成

序:opencv部署到开发板,由于GTK问题导致opencv无法使用Gui,只能交叉编译QT,并为其作为gui供opencv使用

一、PC端交叉编译QT5.12.12

  1. 先编译tslib文件

tslib文件的下载链接:https://github.com/libts/tslib/releases

配置交叉编译器:根据上一节配置,用上一节的编译器,参照上一节。下载tslib文件后解压到ubuntu文件夹下。

  1. 交叉编译

安装环境:

 sudo apt-get install automake

 sudo  apt-get install autogen

sudo apt-get install  libtool

进入解压后的文件夹下终端执行:sudo ./autogen.sh

然后终端运行下面命令:

./configure --host=aarch64-none-linux-gnu ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/home/wangzhen/linux/tslib-1.22/arm-tslib

其中--host=该软件将运行的平台,--prefix交叉编译完生成库的位置

可能会出现下面的错误:

可以查看日志

故进行下列操作:

再次执行:

./configure --host=aarch64-none-linux-gnu ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/home/wangzhen/linux/tslib-1.22/arm-tslib

然后make && make install可看到生成了arm-tslib库了。

切换到arm-tslib/bin目录下,查看一下编译出来的文件是否是ARM64的

  1. 把tslib移植到开发板

将虚拟机上的arm-tslib库打包成arm-tslib.tar文件,拷贝到目标板/opt/目录中,我的目录是放在/opt/arm-tslib中

添加环境变量,终端执行sudo vim /etc/profile,修改里面的文件

我自己用的是下面这张图片上的设置

执行source /etc/profile或者重启使环境变量生效。

验证触摸屏,上面TSLIB_TSDEVICE=/dev/input/event1为指定触摸屏设备

执行cat /dev/input/event1或者cat /dev/input/event1正常的话,触摸屏乱码

然后执行触摸屏校准:./opt/arm-tslib/bin/ts_calibrate

此时执行触摸屏校准,依次点击后会生成/etc/pointercal,该文件目录不要修改。

  1. QT5.12.12的交叉编译

下载后文件为qt-everywhere-src-5.12.12.tar.xz

xz -d qt-everywhere-src-5.12.12.tar.xz解压为tar后缀的

tar -xvf qt-everywhere-src-5.12.12.tar

cd qt-everywhere-src-5.12.12

cd 到qtbase/mkspaces目录,找到一个相似的工具链,cp一份并修改为指定的工具链。(即在QT下添加自己的指定的平台)

cd qtbase/mkspecs # cd到该目录
cp linux-arm-gnueabi-g++/ linux-arm-rk3588-linux-g++ -r # 拷贝一份linux-arm-gnueabi-g++  
cd linux-arm-rk3588-linux-g++ #  切换到新复制的目录并修改

切换到新建的目录下:

修改qmake.conf的内容为:

即指定的交叉编译链。

在源码目录下编译一个脚本autoconfig.sh

给autoconfig.sh添加可执行权限:chmod +x autoconfig.sh,然后执行./autoconfig.sh,然后make -j8 && make install 。等待编译安装,编译安装时间大概在2-3小时。

  1. 移植QT5.12.12到arm板子上运行qt程序

把上面编译好的文件夹build文件夹打包为qt-5.12.12-aarch64.tar.gz文件。拷贝到开发板/opt/arm-qt目录下。

在开发板终端运行vim /etc/profile在最后面添加环境变量。

要想QT程序显示中文,需要把中文字库放到新建一个/usr/share/fonts/目录下,配置QT5的环境变量,打开文件系统/etc/profile,添加如下内容。

至此开发板的qt环境搭建已经完成了。

测试qt环境是否能正常运行,在下一章节介绍。

qt交叉编译后的程序部署到ARM开发板可能会报段错误,加上sudo执行程序,就可以解决了,至于什么原因我也不知道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_41392061

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值