Yocto/Qt5.6:QXcbIntegration:无法创建平台 OpenGL 上下文

Posted

技术标签:

【中文标题】Yocto/Qt5.6:QXcbIntegration:无法创建平台 OpenGL 上下文【英文标题】:Yocto/Qt5.6: QXcbIntegration: Cannot create platform OpenGL context 【发布时间】:2017-03-07 14:57:10 【问题描述】:

我正在开发在 Yocto 2.1 上运行并支持 Qt 5.6.2 的 Nitrogen6x 板。我能够在 Qt Creator 的示例部分下构建一个示例 qt 应用程序Qt Quick Examples - Shader Effects。复制到我的氮气板上的可执行文件。在我启动示例 qt 应用程序的终端上设置了所需的 QT 环境变量,我注意到此错误:

./shadereffects

QXcbIntegration:无法创建平台 OpenGL 上下文,GLX 和 EGL 均未启用。

未能为格式 QSurfaceFormat(版本 2.0,选项 QFlags(),depthBufferSize 24,redBufferSize -1,greenBufferSize -1,blueBufferSize -1,alphaBufferSize -1,stencilBufferSize 8,样本 -1,swapBehavior 创建 OpenGL 上下文2、swapInterval 1、profile 0)

中止。

我尝试运行来自 Qt Creator 示例部分的示例应用程序Analog Clock Example,该程序仅使用 QT Widgets 并且能够在 Nitrogen6x 板上成功运行该应用程序。

在我的packagegroup-qt5-toolchain-target.bb 文件中,我删除了以下几行(由于一些与 GIT 拉取相关的错误)。

$@bb.utils.contains('DISTRO_FEATURES', 'wayland', '$USE_WAYLAND', '', d) \
$USE_RUBY \

此更改是否与 OpenGL 面临的问题有任何相似之处。如果我尝试在 Yocto 终端上执行 sudo apt-get install libgl1-mesa-dev 或等效操作,它会显示 apt-get: command not found。我需要如何解决这个与 OpenGL 相关的错误。对此的任何帮助深表感谢。提前致谢。

【问题讨论】:

【参考方案1】:

我假设您的图像是 x11 并且已删除 Wayland。

在你的/conf/local.conf,尝试添加

DISTRO_FEATURES_append = " opengl "

这会将 opengl 添加到您的发行版中;请参阅Qt Recipe 中的第 41 行

【讨论】:

我只需要支持eglfs 插件。当我使用-platform eflgs 运行我的应用程序时,我看到了这个错误Available platform plugins are: minimal, offscreen, xcb。我正在阅读您回答的其他一些post。我打算在那里尝试你的建议,看看我是否可以成功安装 EGLFS 插件。

以上是关于Yocto/Qt5.6:QXcbIntegration:无法创建平台 OpenGL 上下文的主要内容,如果未能解决你的问题,请参考以下文章