当前位置:网站首页>In the whole development of chi V853 board tried to compile QT test
In the whole development of chi V853 board tried to compile QT test
2022-08-02 09:21:00 【DOT Xiaowen】
记录一下自己交叉编译QT的过程,目前来说再体验了初次编译镜像之后,编译这个QT还是算比较快捷的,因为该有的库都安装完成了.
首先就是我需要找到我们的交叉编译器安装位置,这个在下载了Tina之后还是很好找的.tina-v853-open/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin
如上路径.

我们用的一般就是这个,我们可以把其路径加到我们系统的环境中,这样在编译QT的时候就比较简单了.
一般我是直接加到/etc/profile下的,这样重启后就有了.

敲一下arm-openwrt-linux-gcc -v这样就能出现如上提示就OK了.
接下来我们准备下编译QT前先编译tslib这个在底层使用触摸屏的时候比较方便.

这里我选择的1.15版本的,这个都可以,本身Tina再构建的时候好像就带了tslib.
export STAGING_DIR=/home/v853/tina-v853-open/prebuilt/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/arm-openwrt-linux-muslgnueabi
这段要再配置前执行,这段是为了找交叉编译器的库文件,头文件的.
./configure --host=arm-openwrt-linux ac_cv_func_malloc_0_nonnull=yes--cache-file=arm-linux.cache -prefix=/home/v853/QT/tslib-1.15/arm-tslib

进行配置生成makefile文件.

然后直接make,make结束之后就是make install,这样就会在我们配置的文件夹中生成我们的arm-tslib.

这里其实也只是为了QT交叉编译找一下头文件库这些.

然后我们选择一个QT5版本,这里我选择了QT5.12.6.然后新建一个装交叉编译完成的文件夹我命名为arm-qt.之后我们一般选择构建一个脚本.

这里我建了一个叫make.sh的.这样在这里面我们完成所以QT的配置工作,具体如下:
#!/bin/sh
PWD=`pwd`
mkdir arm-qt
./configure \
-prefix $PWD/arm-qt \
-release \
-opensource \
-shared \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-skip qtlocation \
-skip qttools \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-iconv \
-no-separate-debug-info \
-no-fontconfig \
-tslib \
-I /home/v853/QT/tslib-1.15/arm-tslib/include \
-L /home/v853/QT/tslib-1.15/arm-tslib/lib \
-recheck-all \
-make examples
make -j16
make install
结尾就是直接构建然后安装.
-xplatform linux-arm-gnueabi-g++
中间我们注意这个配置,这个配置是要对应上我们交叉编译器的.


把上面文件里面内容全部替换成我们的交叉编译器的名字.然后执行脚本即可.


确定一下我们的是否同意其license.输入yes即可,中间无报错直接就会构建完安装完.

这是我们配置的一些组件,可以自己选择性的安装.也就是修改脚本即可.

这里就是编译完成了,中间大概等了半小时,看个人虚拟机配置情况.

在路径下生成了很多文件,我们放到arm开发板上也就是lib,和plugins这里面还没有字体文件,可以自己添加.

来到底层,我们需要把文件放到底层,然后我居然发现我编译的系统没有tar指令,没办法我们只能对SD卡下手了,我给sd格式化成ext4格式了也就是支持linux系统的格式.
sudo apt install gparted
我在Ubuntu下安装了gparted工具.直接格式化卡就行.
这样我们可以直接挂载然后使用库.这个目的是因为有些.So文件无法解压的.
export QT_PLUGIN_PATH=/mnt/qt5.12.6/plugins
export QT_QPA_PLATFORM=linuxfb
export LD_LIBRARY_PATH=/mnt/qt5.12.6/lib
然后初始化一下我们的库路径,这样就能运行QT了,效果如下:

附件如下:
qt5.12.6.tar
原贴链接:https://bbs.aw-ol.com/topic/1836/
全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com
全志及开发者最新动态可以关注全志在线微信公众号
边栏推荐
猜你喜欢

SVN下载上传文件

Jetpack Compose 中的状态管理

Qt读取文件中内容(通过判断GBK UTF-8格式进行读取显示)

RetinaFace: Single-stage Dense Face Localisation in the Wild

深度学习汇报(4)

Jenkins--基础--5.4--系统配置--全局工具配置

Nodejs3day(express简介,express创建基本Web服务器,托管静态资源,nodemon下载及出现的问题,中间件,编写GET,POST,JSONP接口)

leetcode:81. 搜索旋转排序数组 II

Rust from entry to master 03-helloworld

MySQL读写分离与主从延迟
随机推荐
Postman download localization of installation and use
【SeaTunnel】从一个数据集成组件演化成企业级的服务
Docker内MySQL主从复制学习,以及遇到的一些问题
The use of thread pool and analysis of ThreadPoolExecutor source code
AutoJs学习-存款计算器
练习40,小蓝的旅行【最短路】
It's time for bank data people who are driven crazy by reporting requirements to give up using Excel for reporting
spark:热门品类中每个品类活跃的SessionID统计TOP10(案例)
软件exe图标变记事本或浏览器、360压缩打不开的几种应急解决方法
百战RHCE(第四十七战:运维工程师必会技-Ansible学习2-Ansible安装配置练习环境)
Jenkins--基础--5.4--系统配置--全局工具配置
typeinfo类型支持库学习
小程序云开发(十):渐变与动画
JS中的数组方法
【微信小程序2】事件绑定
【并发编程】- 线程池使用DiscardOldestPolicy策略、DiscardPolicy策略
Qt读取文件中内容(通过判断GBK UTF-8格式进行读取显示)
Jenkins--基础--6.2--Pipeline--语法--声明式
Gorilla Mux 和 GORM 的使用方法
What attributes and methods are available for page directives in JSP pages?