IMX6Q基于yocto 4.9.88系统移植Qt5.12(支持opengl和eglfs)

Qt 5.12 源代码下载以及配置

从下面地址下载并解压 Qt 5.12 开源版最新源代码 tar.xz 压缩包,本文选择Qt版本是 5.12.10
Index of /archive/qt/5.12

$ wget https://download.qt.io/archive/qt/5.12/5.12.10/single/qt-everywhere-src-5.12.10.tar.xz
$ tar -xvf qt-everywhere-src-5.12.10.tar.xz
$ cd qt-everywhere-src-5.12.10

配置文件

首先,因为是交叉编译,因此要使用 qtbase/mkspecs/devices/ 目录下的嵌入式设备对应的 qmake 配置文件,不过由于预置的针对 NXP iMX6 的 linux-imx6-g++ 对应的 qmake.conf 默认是针对 eglfs 文件系统的,而本文测试使用是基于 X11 显示的,因此需要做相应修改。

qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf 修改为如下:

include(../common/linux_device_pre.conf)


QMAKE_LIBS_EGL         += -lEGL
QMAKE_LIBS_OPENGL_ES2  += -lGLESv2 -lEGL -lGAL
QMAKE_LIBS_OPENVG      += -lOpenVG -lEGL -lGAL

#IMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1
IMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -mthumb
QMAKE_CFLAGS           += $$IMX6_CFLAGS
QMAKE_CXXFLAGS         += $$IMX6_CFLAGS

DISTRO_OPTS += hard-float

# Preferred eglfs backend
#EGLFS_DEVICE_INTEGRATION = eglfs_viv

include(../common/linux_arm_device_post.conf)

QMAKE_CFLAGS_ISYSTEM =

load(qt_config)

 然后创建 configure 配置文件 config.sh 如下,主要用于coonfigure 配置参数设置,选定 xcb(X11)支持等,也可以通过 -skip-<qtmodule> 来忽略编译某些qt模块,本文默认编译全部。

./configure -confirm-license \
-prefix /usr/local/Trolltech/Qt-5.12.10.opengl-arm/ -release  -opensource \
-sysroot /opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi \
-qt-libjpeg -qt-libpng \
-qt-zlib  -skip qt3d -skip qtcanvas3d -skip qtpurchasing  \
-no-sse2 -no-cups -no-glib -no-iconv \
-nomake examples -nomake tools -skip qtvirtualkeyboard  \
-xcb -xcb-xlib -qpa xcb \
-opengl es2 -opengles3 -egl -eglfs \
-device linux-imx6-g++ \
-device-option CROSS_COMPILE=/opt/fsl-imx-x11/4.9.88-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- \
-qpa imx6 -eglfs

Qt 5.12 源代码交叉编译

执行文件

$ ./ config.sh

Configure成功后,会打印罗列要编译的相关组件,可以再次确认下是否符合要求

执行 make 进行编译,由于完整编译需要时间比较长,可以先尝试单独编译qtbase组件,如果编译成功再进行完整编译以提高效率
$ make -j8

make 成功没有错误后,再执行 make install 进行安装,安装目录通过上面 config.sh 脚本 -prefix 参数定义,比如本文则位于 /usr/local/Trolltech/Qt-5.12.10.opengl-arm
$ make install

Qt 5.12 部署测试

安装成功后,将 Qt 编译输出目录打包上传以便在i.MX6 Arm开发板系统中部署测试

修改ARM中/etc/profile文件中关于QT的配置:

$ vi /etc/profile

# set up QT enviroment
export QTDIR=/usr/local/Trolltech/Qt-5.12.10.opengl-arm
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QT_QPA_PLATFORM=eglfs
export QT_QPA_FONTDIR=/usr/share/fonts/truetype/
export QML2_IMPORT_PATH=$QTDIR/qml


export QT_QPA_EGLFS_INTEGRATION=eglfs_x11
export QT_QPA_EGLFS_PHYSICAL_WIDTH=1024
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=768
export DISPLAY=:0.0
export QT_DEBUG_PLUGINS=0

$ source  /etc/profile

运行测试程序:

$ cd /work/

$  ./openglwindow

显示QT界面

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

诺水城子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值