高通(QCS405) LE Yocto系统Qt5 SDK移植开发

目前该文章还不是很成熟,先临时记录并实时更新
首先在电脑端上面安装好Qt Creator版本,用于在Ubuntu或者Windows上面开发

目前很不幸运的该离线包的网址已经被墙了,可以通过VPN进行下载

Index of /archive/qthttps://download.qt.io/archive/qt/

另外参考了网友其它帖子的方式,使用迅雷或者其它工具包进行下载,输入使用下面的离线包的url地址

https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe

https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-mac-x64-5.14.2.dmg

https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-linux-x64-5.14.2.run

1.下载对应Yocto的meta-qt5版本

查看当前高通带的LE baseline的Yocto版本发现是2.6.4,代号是thud

{$PROJECT_PATH} /LE.UM.5.2.1/apps_proc/poky/meta-poky/conf/distro/poky.conf

然后从github上面下载对应的thud版本的meta-qt5仓库,下载到基线代码的{$PROJECT_PATH}/LE.UM.5.2.1/apps_proc/poky目录下

git clone https://github.com/meta-qt5/meta-qt5.git -b thud

下载成功会在这个目录下会有一个meta-qt5文件夹
如果自己在github上面下载,注意要切换到thud这个branch

1.1.项目目录结构及介绍

meta-qt5项目遵循了Yocto Project的标准层结构,其主要目录及其功能概述如下:

  • recipes-qt

此目录包含了所有与Qt5相关的软件包食谱(.bbappend, .bb recipes)。每个子目录对应于一个特定的Qt模块或相关工具,如qtbase, qtquickcontrols等,用于定制和编译Qt组件。

  • files

包含了一些额外的文件,比如补丁文件,这些文件可能被用于修改源码以适应特定的构建需求。

  • conf

包含layer.conf文件,这是层的核心配置文件,定义了层的基本属性,如BBLAYERS的添加和其它必要的配置选项。

  • README.md

项目的主要说明文件,提供了快速入门指导和一些基本的信息。

  • LICENSE

列出了项目采用的许可证信息,通常是MIT或其他开源许可协议。

1.2.进行编译

修改在meta-qt5的目录下新建一个machine-image.bbappend文件用来编译meta-qt5相关的包

cd {$PROJECT__PATH}/LE.UM.5.2.1/apps_proc/poky/meta-qt5/
mkdir recipes-products
cd recipes-products
mkdir images
cd images
touch machine-image.bbappend
mkdir qcs40x
cd qcs40x
touch qcs40x-image.inc
recipes-products/
└── images
    ├── machine-image.bbappend
    └── qcs40x
        └── qcs40x-image.inc

machine-image.bbapend内容如下

include ${BASEMACHINE}/${BASEMACHINE}-image.inc

qcs40x-image.inc内容如下,若是想要打包其他的可以按照对应的格式添加

IMAGE_INSTALL += "qtbase"
IMAGE_INSTALL += "qt5ledscreen"
IMAGE_INSTALL += "qtdeclarative"
IMAGE_INSTALL += "qtwayland"

进行全部编译,默认会编译到整个meta-qt5,会在对应的tmp目录下生成对应的libQt5Gui.so等库

cd apps_proc/poky
source build/conf/set_bb_env.sh
export LANG=en_US.UTF-8
build-vt-64-qsap-perf-image

编译成功之后会在{$PROJECT_PATH}/LE.UM.5.2.1/apps_proc/poky/build/tmp-glibc/work/aarch64-oe-linux/qtbase/5.12.6+gitAUTOINC+f0b93f7a4b-r0目录下有相关的Qt库

2.编译Qt5相关的工具链

通过qt5的meta-toolchain-qt5的交叉编译工具链进行编译,这个包除了基础的arm-gcc/g++交叉编译工具还包含了Qt使用的工具,比如qmake, qdbusviewer等工具

编译交叉编译工具

source build/conf/set_bb_env.sh 

bitbake meta-toolchain-qt5 //编译qttool等

对应的bb文件

{$PROJECT_PATH}/LE.UM.5.2.1/apps_proc/poky/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb

编译过程

编译好的部分工具在如下目录,比如qmake,qdbusviewer等工具都在这个目录下,用来进行一些Qt的简单测试,编译出来的工具在下面路径

{$PROJECT_PATH}/LE.UM.5.2.1/apps_proc/poky/build/tmp-glibc/work/aarch64-oe-linux/qttools/

同时,对应的交叉编译工具成功之后会在{$PROJECT_PATH}/LE.UM.5.2.1/apps_proc/poky/build/tmp-glibc/deploy/目录有sdk

进行安装交叉编译SDK,默认不仅把基础的交叉编译环境进行安装,也会把Qt相关的动态库和工具也会安装到对应的目录

cd {$PROJECT_PATH}/LE.UM.5.2.1/apps_proc/poky/build/tmp-glibc/deploy/sdk/

./oecore-x86_64-aarch64-toolchain-nodistro.0.sh //遇到选择则进行选择Y
如下所示

安装好的交叉编译工具在当前编译的Ubuntu电脑的下面目录

/usr/local/oecore-x86_64/sysroots

3.编译Qt5相关的应用工程

目前实测有两种方式进行编译Qt5开发的应用程序

1.使用qmake调用交叉编译工具生成的Makefile进行编译

前期调试开发推荐这个方式,这种方式编译和Debug比较快

2.使用bb文件进行编译(后续待补充,使用第1步开发所有的App之后,使用bb进行编译打包进系统)

3.1.使用交叉编译工具编译

//进入Qt5开发的工程源码目录 
cd Qt5_Demo 

//source上一个章节的安装好的编译工具链 
source /usr/local/oecore-x86_64/environment-setup-aarch64-oe-linux 

//使用qmake生成Makefile文件
qmake 

//使用make进行编译 
make -j8

如果在使用qmake之前没有进行source到交叉编译工具,则在Makefile中的CC/CXX引用的工具链是gcc/g++,而并非是交叉编译工具链

3.2.实测

将生成好的可执行文件push到设备中,进行执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云海无语

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

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

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

打赏作者

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

抵扣说明:

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

余额充值