首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Yocto Linux中为Qt5应用程序启用GLX和EGL与XCB的集成?

如何在Yocto Linux中为Qt5应用程序启用GLX和EGL与XCB的集成?
EN

Stack Overflow用户
提问于 2020-11-21 10:19:32
回答 1查看 875关注 0票数 0

我有一个应用程序运行在带有Qt5的Yocto Zeus 3.0.1上,并且依赖于OpenGL EGL。应用程序构建良好,但失败,并显示以下消息:

代码语言:javascript
运行
复制
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
QXcbIntegration: Cannot create platform offscreen surface, neither GLX nor EGL are enabled

我已经在镜像.bb文件中添加了所有需要的OpenGL驱动程序:

代码语言:javascript
运行
复制
IMAGE_INSTALL += "libegl-mesa libgl-mesa libegl-mesa-dev libgl-mesa-dev libgles3-mesa-dev mesa-megadriver"

以下是我的qt5/qtbase_%.bbappend文件。

代码语言:javascript
运行
复制
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

PACKAGECONFIG_append = "gles2 mtdev sql-sqlite glib fontconfig gif accessibility"

PACKAGECONFIG_append = " widgets"

do_configure_prepend () {
    cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <<EOF
    # the below indentation is important - Soham

QMAKE_LIBS_EGL += -lEGL -ldl -lglib-2.0 -lpthread
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lgsl -lEGL -ldl -lglib-2.0 -lpthread

QMAKE_CFLAGS += -DLINUX=1 -DWL_EGL_PLATFORM -DEGL_API_FB=1
QMAKE_CXXFLAGS += -DLINUX=1 -DWL_EGL_PLATFORM -DEGL_API_FB=1

QT_QPA_DEFAULT_PLATFORM = xcb
load(qt_config)
EOF
}

我在目标本身上构建应用程序。因此,我添加了-dev文件。

这里我漏掉了什么?

EN

Stack Overflow用户

回答已采纳

发布于 2020-11-24 00:52:33

我需要更改我的qtbase_%.bbappend。它应该如下所示:

代码语言:javascript
运行
复制
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

IMAGE_FEATURES += "accessibility"
IMAGE_FEATURES += "gles2 mtdev sql-sqlite glib fontconfig gif accessibility xcb egl libs xkb xkmcommon"
QT_CONFIG_FLAGS_APPEND = "-xcb"

PACKAGECONFIG_append = " widgets"

DEPENDS += "gsl libxkbcommon"

RDEPENDS_${PN} += "gsl xrandr libxkbcommon"

do_configure_prepend () {
    # the below indentation is important - Soham
    cat > ${S}/mkspecs/oe-device-extra.pri <<EOF

QMAKE_LIBS_EGL += -lEGL -ldl -lglib-2.0 -lpthread -lX11 -lxcb -lXrandr -lxcb-glx
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lgsl -lEGL -ldl -lglib-2.0 -lpthread -lX11 -lxcb -lXrandr -lxcb-glx

QMAKE_CFLAGS += -DLINUX=1 -DWL_EGL_PLATFORM -DEGL_API_FB=1 -DXCB_USE_EGL -DXCB_USE_GLX
QMAKE_CXXFLAGS += -DLINUX=1 -DWL_EGL_PLATFORM -DEGL_API_FB=1 -DXCB_USE_EGL -DXCB_USE_GLX

QT_QPA_DEFAULT_PLATFORM = xcb
QT_XCB_GL_INTEGRATION = xcb_egl

EOF
}
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64939212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档