美文网首页
IMX6Q-Yocto手工交叉编译QT5

IMX6Q-Yocto手工交叉编译QT5

作者: Lazy_Caaat | 来源:发表于2018-10-15 23:28 被阅读0次

我们在IMX6Q-Yocto环境搭建里面已经编译好了qt-toolchain和qmake(bitbake fsl-image-qt5和bitbake meta-toolchain-qt5)。
有两种编译方式:

  • 使用qt-creater编译(环境变量有问题,总是执行宿主机的编译环境)
  • 使用命令行编译(yocto的交叉编译工具链测试成功)

因为上面的原因,我选择直接手工编译(有空了可以写个脚本),首先创建一个空的qt工程,你可以使用qt-creater的项目创建向导创建一个空的GUI工程用于测试。当你新建完毕以后,会有以下几个文件。


image.png

创建完工程后,qt-creater的使命就完成了,我们只需要留下三个源文件即可,剩下的pro文件进入终端删掉。


只剩源文件

好了,源文件准备好后就是需要导入交叉编译环境,通过之前的文章我们知道交叉编译工具链已经生成在/opt目录。

$ . /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

执行上面的yocto生成的脚本导入环境变量,注意每次关闭终端以后需要重新导入交叉编译环境。

qmake --version(查看qmake信息)
arm-poky(按两次table键应该自动补全交叉编译工具链)
查看qmake信息 自动补全交叉编译工具链

这时交叉编译的环境就准备好了
进入qt工程的路径


image.png
qmake -project  //(初始化qt工程,生成pro文件)
qmake//生产Makefile
make//编译

在编译之前我们需要往pro文件里追加两行代码

QT += core gui//若不添加,则找不头文件
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets//大于qt4(例如qt5)就需要加入这行告诉编译器qt的版本较新
pro文件

最后会生成一个可执行文件


image.png

使用file命令查看这个可执行文件的信息,里面有arm字样即成功。


文件信息

在使用qmake命令的时候会报告一个.pri文件找不到,一般可以忽略此问题,不会影响正常工作,若实在看不惯,可直接touch一个同名文件到它提示的路径里去就不会报错了。

最后拷贝这个可执行文件到SD卡中,文件系统使用的是yocto的qt5文件系统。


这是个下拉菜单
选择显示all程序
单击文件管理器
找到你复制可执行文件的目录并双击该文件
执行该文件
这就是你制作的空白GUI程序的运行效果

最后需要注意,通过串口连接板子的时候,直接执行交叉编译后的可执行文件会报错,原因是你当前的串口打开的tty是不支持显示GUI图形界面的,你需要指定显示设备为lcd屏幕的设备号,export DISPLAY=:0.0


lcd

相关文章

  • IMX6Q-Yocto手工交叉编译QT5

    我们在IMX6Q-Yocto环境搭建里面已经编译好了qt-toolchain和qmake(bitbake fsl-...

  • qt5应用程序如何交叉编译

    常见问题: 交叉编译Qt程序的原理没理清 Qt的库和Qt的qmake、rcc、moc等工具没有设置好 Qt的版本宿...

  • ITOP 4412 交叉编译环境 的搭建

    1 交叉编译工具### 编译的时候需要用到交叉编译工具,提供的交叉编译工具是用户光盘“02_编译器以及烧写工具”→...

  • golang进行交叉编译

    golang进行交叉编译 交叉编译即编译不同操作系统平台的可执行程序 golang执行交叉编译,只需要使用两个变量...

  • 交叉编译

    配置64位ubuntu交叉编译环境时,设置arm的工具链的路径,需要先安装lib32stdc++6 然后在~/.b...

  • 交叉编译

    在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程...

  • 交叉编译

    使用go的交叉编译 最后使用go build windows_fping.go 编译出.exe可执行文件 如果编译...

  • 交叉编译

    1.为啥需要交叉编译?因为linux 系统上的gcc 在android 系统上没法正常调用,所有需要使用andro...

  • 在Linux环境交叉编译Qt5.5.0源码及编译示例

    在Linux环境交叉编译Qt5.5.0源码及编译示例 实验环境 交叉编译平台 (on VMware14.0,Win...

  • debian 交叉编译 openssl

    使用上次编译的 交叉编译工具链来编译openssl如果没建立交叉编译环境的先阅读:编译工具链子制作神器 – cro...

网友评论

      本文标题:IMX6Q-Yocto手工交叉编译QT5

      本文链接:https://www.haomeiwen.com/subject/dwwboftx.html