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 上下文的主要内容,如果未能解决你的问题,请参考以下文章