imx6ull交叉编译qt5.12

刚开始学习做QT,同时学习嵌入式linux设备,记录下qt5.12在交叉编译在imx6ull上运行过程。

准备工作

PC:Ubuntu 18.04

板子:imx6ull(ARMv7)

交叉编译器:gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf(注意32位和64位,6ull为32位)

qt5.12源码

配置编译

1.配置交叉编译工具链

下载交叉编译工具,解压,添加环境变量。

sudo vim ~/.bashrc

在末尾添加路径s

PATH=$PATH:/home/book/software/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin

使用:source ~/.bashrc使修改生效。

使用:arm-linux-gnueabihf-gcc -v查看信息。

2.配置qmake编译安装库

我是安装qt时同时下载了源码,在源码目录里修改qmake配置,我的在software/QT/5.12.11/Src/qtbase/mkspecs

进入这个目录后使用指令拷贝一份(名称忽略懒得改)

sudo cp -a linux-aarch64-gnu-g++/ aarch64-linux-gnu-g++/

进入拷贝的目录下,配置qmake.conf文件

cd aarch64-linux-gnu-g++
vim qmake.conf

修改为自己交叉编译器的路径,我的为:/home/book/software/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/

然后就是配置qt编译,跟着查找的方法在源码目录建个build目录写build脚本配置防止污染源码,但是我出现了一些错误

库找不到的一些问题,不知道是不是脚本等的问题,(头铁)直接使用命令在源码目录下配置,我的目录在software/QT/5.12.11/Src,然后成功了

#配置编译参数
./configure -release -opensource -confirm-license -xplatform aarch64-linux-gnu-g++ -prefix /usr/local/QTArm -nomake examples -no-opengl -silent -qpa linuxfb

主要修改-xplatform后的参数为我们配置的qmake的目录,-prefix为编译后库安装的位置。

然后编译,编译安装。

make -j8
sudo make install

完成后在安装目录下就有交叉编译后的库了。

3.编译套件及测试

(板子环境已经提前配置好)

在QtCreator下配置编译套件做个测试程序在板子上运行。

添加C/C++编译器,3路径修改为自己交叉编译器路径的编译器。

添加qmake,这个为我们交叉编译的qt生成的。路径为我们编译安装的路径的bin目录下。

添加kit套件,点击添加,添加我们的C/C++交叉编译器,交叉编译的qmake。

然后创建qt项目,选择自己创建的套件,构建项目。

将构建的二进制文件拷贝到nfs目录下,板子挂载后运行程序。出现以下错误。

这个是插件问题,EGLFS 是许多主板上的默认插件,使用LinuxFB插件,使用环境变量来请求另一个插件。

export QT_QPA_PLATFOR=linuxfb

在程序程序后加语句。

./test --plugin tslib:/dev/input/event1 -platform linuxfb

执行成功,记录过程,再持续看看开发过程有没有什么问题。

参考文章:

        Ubuntu18.04实现Aarch64和arm32的交叉编译全步骤(Qt5.12.10源码编译)-优快云博客

        QT5交叉编译保姆级教程(arm64、mips64)_qt 交叉编译-优快云博客

执行rt QT_QPA_PLATFORM=linuxfbt QATFORM=linuxfbe=linuxfb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值