标题:Qt5.5.1移植到imx6(需要用到opengl es)
作者:兵317
日期:2016-12-29 16:43
内容:
如题,现需要利用Qt5.5新加的Qt3D功能,所以要运行在eglfs显示平台(利用硬件平台的gpu),所以移植了5.5.1,可是平台插件libqeglfs.so是生成出来了,但是大小只有几kb,放到开发板上运行界面程序,会报This application failed to start because it could not find or load the Qt platform plugin "eglfs".错误,下面我列出我的编译器版本及qt里面的配置文件内容:
一、环境
HOST:ubuntu14.04-LTS
Embedded:freescale imx6 linux-3.0.35
CROSS_COMPILE:freescale提供的gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
二、源码配置文件
1.auto_config.sh
#!/bin/sh
./configure \
-v -prefix /opt/qt-5.5.1/qte-arm \
-opensource -confirm-license \
-qt-sql-sqlite \
-qt-libpng \
-qt-libjpeg \
-qt-freetype \
-qt-pcre \
-qt-zlib \
-make examples \
-dbus \
-no-iconv \
-make libs \
-device imx6 \
-no-xcb \
-no-directfb \
-no-kms \
-eglfs \
-qpa eglfs \
-opengl es2 \
-openvg \
-release \
-device-option \
CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
2.../qtbase/mkspec/devices/linux-imx6-g++/qmake.conf
include(../common/linux_device_pre.conf)
#EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_imx6.cpp
#QT_QPA_DEFAULT_PLATFORM = eglfs #eglfs#显示使用linuxfb或eglfs
#QMAKE_INCDIR += $$/usr/include
#QMAKE_LIBDIR ..
#1 [兵317 12-29 16:45]
网上搜索到的Qt-5.x(x>=5)几乎都是用的linuxfb平台,去掉了eglfs,难道Qt5.5后eglfs就不能在嵌入式设备上使用了?
#2 [兵317 12-29 16:51]
运行完auto_config.sh后如果顺利会生成Makefile,同时shell终端会显示出你设置的一些东西的yes或no,其中关于eglfs的有两个,一个是eglfs另一个是eglfs-imx6,如果配置了eglfs为no,eglfs-imx6为yes,对应的安装目录plugins/platforms/下不会生成libqeglfs.so,只有eglfs为yes了才会生成那个插件,这个eglfs-imx6选项好像是跟上面vedio有关的,不大清楚。
#3 [shf1986 01-10 14:30]
需要指定gpu的库,可以通过用-sysroot指定,网上参考一下别人的方法......
#4 回 shf1986 的帖子 [兵317 01-22 10:24]
shf1986:需要指定gpu的库,可以通过用-sysroot指定,网上参考一下别人的方法...... (2017-01-10 14:30)
谢谢你的回复,gpu的库都一直指定了,在qmake.conf配置文件中。至于-sysroot选项,其实可以不用加的也可以,在移植5.4的时候就没加,照样用的好好的。目前libqeglfs.so还是六七kb大小,但是能用,后面也移植了5.6和5.7(该版本交叉编译工具链至少4.7),都能用,只是一当程序中QWindow和QWidget都存在时,插件会报错:This plugin does not support setParent!
EGLFS: OpenGL windows cannot be mixed with others.
Aborted。
#5 [kh99827765 02-07 15:12]
目前在用Qt5.5,用在tq335x上,一直跑的没有问题,步骤看似和你的差不多