最近项目开发需要用到qml,因为qml需要依赖OpenGL库,所以重新配置相关环境。

一、开发环境

1.内核版本

[email protected]:~# uname -a
Linux marsboard 4.1.15 #1 SMP PREEMPT Mon Dec 19 13:55:17 CST 2016 armv7l GNU/Linux

2.文件系统

采用yocto编译出来的对应的内核4.1.15版本的文件系统

3.Qt版本

采用qt5.9.4版本,下载源码手动编译的qt库(编译时配置了OpenGL的路径,具体后面再详述)

4.硬件

开发板采用的是天嵌imx6Q系列,uboot和内核也是移植的官方提供的4.1.15版本(可以从天嵌官网提供的百度网盘下载)。

注意据官方资料imx6 Sololite不支持OpenGL,

Qt5.9.4+OpenGL调试笔记:QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

二、Qt库移植及Qt程序运行

1.库移植

虚拟机上编译出来的库文件如下:

Qt5.9.4+OpenGL调试笔记:QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

将qt库移植到开发板,lib拷贝到了/usr/lib,plugins、qml拷贝到了/usr/lib/qt5

Qt5.9.4+OpenGL调试笔记:QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

2.Qt程序的编译

如果自己编译Qt库,那就需要手动修改路径cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/会有一个default.conf配置文件,可以修改默认配置文件为你编译好的Qt库路径,具体不再详述。

3.运行环境变量配置

[email protected]:~# export EGLFS_DEVICE_INTEGRATION= eglfs_viv
[email protected]:~# export QT_QPA_PLATFORM=eglfs
[email protected]:~# ls
bright
[email protected]:~# ./bright 
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QEglFSVivIntegration will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.
 If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
Facade::initializeCommand()
ApplicationFacade::initializeCommand()
Facade::initializeCommand()
QMetaObject::connectSlotsByName: No matching signal for on_toolButton_clicked()

write begin at "01:47:36.388" >>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<< write finished at "01:47:36.388" 

qrc:/qml/PowerSetting.qml:2:1: module "QtQuick.Controls" is not installed
qrc:/qml/PowerSetting.qml:5:1: module "QtQuick.Extras" is not installed
qrc:/qml/PowerSetting.qml:1:1: module "QtQuick" is not installed
qrc:/qml/PowerSetting.qml:6:1: module "QtQuick.Controls.Styles" is not installed
qrc:/qml/PowerSetting.qml:3:1: module "QtQuick.Layouts" is not installed
qrc:/qml/PowerSetting.qml:4:1: module "QtQuick.Dialogs" is not installed
qrc:/qml/PowerSetting.qml:2:1: module "QtQuick.Controls" is not installed
qrc:/qml/PowerSetting.qml:5:1: module "QtQuick.Extras" is not installed
qrc:/qml/PowerSetting.qml:1:1: module "QtQuick" is not installed
qrc:/qml/PowerSetting.qml:6:1: module "QtQuick.Controls.Styles" is not installed
qrc:/qml/PowerSetting.qml:3:1: module "QtQuick.Layouts" is not installed
qrc:/qml/PowerSetting.qml:4:1: module "QtQuick.Dialogs" is not installed
qrc:/qml/PowerSetting.qml:2:1: module "QtQuick.Controls" is not installed
qrc:/qml/PowerSetting.qml:5:1: module "QtQuick.Extras" is not installed
qrc:/qml/PowerSetting.qml:1:1: module "QtQuick" is not installed
qrc:/qml/PowerSetting.qml:6:1: module "QtQuick.Controls.Styles" is not installed
qrc:/qml/PowerSetting.qml:3:1: module "QtQuick.Layouts" is not installed
qrc:/qml/PowerSetting.qml:4:1: module "QtQuick.Dialogs" is not installed
qrc:/qml/PowerSetting.qml:2:1: module "QtQuick.Controls" is not installed
qrc:/qml/PowerSetting.qml:5:1: module "QtQuick.Extras" is not installed
qrc:/qml/PowerSetting.qml:1:1: module "QtQuick" is not installed
qrc:/qml/PowerSetting.qml:6:1: module "QtQuick.Controls.Styles" is not installed
qrc:/qml/PowerSetting.qml:3:1: module "QtQuick.Layouts" is not installed
qrc:/qml/PowerSetting.qml:4:1: module "QtQuick.Dialogs" is not installed
qrc:/qml/PowerSetting.qml:2:1: module "QtQuick.Controls" is not installed
qrc:/qml/PowerSetting.qml:5:1: module "QtQuick.Extras" is not installed
qrc:/qml/PowerSetting.qml:1:1: module "QtQuick" is not installed
qrc:/qml/PowerSetting.qml:6:1: module "QtQuick.Controls.Styles" is not installed
qrc:/qml/PowerSetting.qml:3:1: module "QtQuick.Layouts" is not installed
qrc:/qml/PowerSetting.qml:4:1: module "QtQuick.Dialogs" is not installed
qrc:/qml/PowerSetting.qml:2:1: module "QtQuick.Controls" is not installed
qrc:/qml/PowerSetting.qml:5:1: module "QtQuick.Extras" is not installed
qrc:/qml/PowerSetting.qml:1:1: module "QtQuick" is not installed
qrc:/qml/PowerSetting.qml:6:1: module "QtQuick.Controls.Styles" is not installed
qrc:/qml/PowerSetting.qml:3:1: module "QtQuick.Layouts" is not installed
qrc:/qml/PowerSetting.qml:4:1: module "QtQuick.Dialogs" is not installed
QObject::connect: Cannot connect (null)::sendPowerValueToWidget(QString) to CentralPanel::on_setPowerData(QString)
QObject::connect: Cannot connect CentralPanel::sigSendPowerInitData(QString) to (null)::recFromWidget(QString)
QObject::connect: Cannot connect (null)::closeView() to QQuickWidget::close()
[email protected]:~# ^C
[email protected]:~# export   QML2_IMPORT_PATH=/usr/lib/qt5/qml
[email protected]:~# ./bright 
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
QEglFSVivIntegration will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.
 If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
Facade::initializeCommand()
ApplicationFacade::initializeCommand()
Facade::initializeCommand()
QMetaObject::connectSlotsByName: No matching signal for on_toolButton_clicked()

write begin at "01:53:06.210" >>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<< write finished at "01:53:06.211" 

如上所述,环境变量配置完毕就可以看到界面了,qml页面正常加载。

总结:

1.QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'这个好像不影响页面显示

2.天嵌官方提供的4.1.15内核支持OpenGL,这点很重要

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-16
  • 2022-12-23
  • 2021-05-05
  • 2021-08-11
  • 2022-12-23
  • 2021-09-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-24
  • 2022-12-23
  • 2022-12-23
  • 2021-12-30
相关资源
相似解决方案