参考文档
开发环境介绍
- 主机操作系统:Ubuntu16.04 64位
- 目标平台:盒子V1(IMX.6)
- 交叉工具链:arm-poky-linux-gnueabi,gcc4.8.2
- Qt版本:5.9.6
- 编译时间:2018.7.7
提示:较新版本的Qt使用了C++11语法,所以必须使用gcc4.8.0及以上版本
目标环境部署
部署Qt主体文件
将参考文档1编译生成的Qt-5.9.6目录下的子目录拷贝到ARM目标文件系统。
- 将lib下的所有库.so文件,拷贝到ARM目标文件系统/usr/lib目录下
- 将plugins、libexec目录拷贝到ARM目标文件系统/usr/lib/qt5/文件夹目录下
- 将translations、resources目录,拷贝到ARM目标文件系统/usr/local/Qt-5.9.6/文件夹目录下
部署Qt额外动态库:
因为编译webengine需要使用GPU版本的egl驱动,并且使用固定版本的XML,所以需要替换部分目标文件系统上的动态库。
下载额外动态库,将解压出来的Qt5.9.6-BoxV1-fixWebEngine-extras-lib目录下的子目录拷贝到ARM目标文件系统的对应目录下。
目标环境运行
环境变量配置
因为QT Webengine需要将QT QPA(平台抽象层)设置成eglfs才能正常工作,并且为了帮助QT应用程序找到相关qt平台插件需要在qt应用程序运行前设置好下面这些环境变量,或者将下面的环境变量设置放在/etc/profile中执行
export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
export QT_PLUGIN_PATH=/usr/lib/qt5/plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/qt5/plugins/platforms
export QTWEBENGINEPROCESS_PATH=/usr/lib/qt5/libexec/QtWebEngineProcess
export QT_QPA_PLATFORM=eglfs
export QT_QPA_GENERIC_PLUGINS=evdevkeyboard
export QT_QPA_EVDEV_MOUSE_PARAMETERS=grab=1
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
提示:当需要使用Webengine时必须设置平台抽象层(QT_QPA_PLATFORM)为
eglfs
如果不需要使用Webengine并且eglfs的GPU驱动并未准备好时可以使用
linuxfb
或者xcb