C++ 交叉编译Raspberry PI的QT static时仅使用eglfs

C++ 交叉编译Raspberry PI的QT static时仅使用eglfs,c++,qt,raspberry-pi,C++,Qt,Raspberry Pi,我已经使用 ./configure -opengl es2 -opensource -confirm-license -release -static \ -prefix /usr/local/qt5static -hostprefix ~/raspi/qt5 -extprefix ~/raspi/qt5static \ -device linux-rasp-pi-novc-g++ \ -device-option CROS

我已经使用

./configure -opengl es2 -opensource -confirm-license -release -static \
            -prefix /usr/local/qt5static -hostprefix ~/raspi/qt5 -extprefix ~/raspi/qt5static \
            -device linux-rasp-pi-novc-g++ \
            -device-option CROSS_COMPILE=arm-raspbian-linux-gnueabihf- \
            -optimized-qmake -reduce-exports \
            -sysroot ~/raspi/sysroot \
            -make libs -make tools -no-use-gold-linker -v
其中,“novc”设备基本上与linux-rasp-pi-g++相同,但没有/opt/vc中的include或libs。当我运行该程序时,它会全屏启动(因为eglfs),当使用export QT_DEBUG_PLUGINS=1进行探测时,会产生*

QFactoryLoader::QFactoryLoader()忽略 “org.qt project.qt.QPA.QPlatformIntegrationFactoryInterface.5.3”自 静态版本qt.qpa中禁用插件。插件:找不到 此应用程序“”中的Qt平台插件“android”无法启动 启动,因为无法初始化任何Qt平台插件。重新安装 应用程序可能会修复此问题

可用的平台插件有:eglfs、eglfs

工厂装载机出现故障是可以的,但是为什么只有EGLF,它们中的两个在哪里?如何确保xcb是一个选项,并且是默认选项

*我使用的是
myapp-platformandroid
,因为我知道android不在那里。来自
sudo apt install QT
的动态链接QT显示

可用的平台插件有:eglfs、linuxfb、minimal、minimalegl、, 屏幕外,xcb

我想从我的静态编译。这是我的QPA后端(我确实看到了X11的eglfs,也许这就是我必须触发的…)

我的hello\u插件\u导入包含以下内容:

// This file is autogenerated by qmake. It imports static plugin classes for
// static plugins specified using QTPLUGIN and QT_PLUGIN_CLASS.<plugin> variables.
#include <QtPlugin>
Q_IMPORT_PLUGIN(QEglFSIntegrationPlugin)
Q_IMPORT_PLUGIN(QXcbEglIntegrationPlugin)
Q_IMPORT_PLUGIN(QXcbGlxIntegrationPlugin)
Q_IMPORT_PLUGIN(QGifPlugin)
Q_IMPORT_PLUGIN(QICNSPlugin)
Q_IMPORT_PLUGIN(QICOPlugin)
Q_IMPORT_PLUGIN(QJpegPlugin)
Q_IMPORT_PLUGIN(QTgaPlugin)
Q_IMPORT_PLUGIN(QTiffPlugin)
Q_IMPORT_PLUGIN(QWbmpPlugin)
Q_IMPORT_PLUGIN(QWebpPlugin)
Q_IMPORT_PLUGIN(QEglFSEmulatorIntegrationPlugin)
Q_IMPORT_PLUGIN(QEglFSKmsEglDeviceIntegrationPlugin)
Q_IMPORT_PLUGIN(QEglFSX11IntegrationPlugin)
Q_IMPORT_PLUGIN(QConnmanEnginePlugin)
Q_IMPORT_PLUGIN(QGenericEnginePlugin)
Q_IMPORT_PLUGIN(QNetworkManagerEnginePlugin)

我相信,当您使用
-static
配置Qt时,您正在将平台插件烘焙到构建中,以后将无法在插件之间进行交换。我不确定这一点,但我一直在这条路上,无法让qpa切换工作,只有一个平台插件上市。如果有办法的话,我很想听听

如果我在这方面是正确的,那么要使用xcb而不是eglfs,您需要使用
configure
的第一行重新配置Qt,如下所示:

./configure -no-eglfs -qpa xcb -qt-xcb -opensource -confirm-license -release -static \

祝你好运

原来的诀窍是,你必须在qmake.pro文件中添加xcb的QTPLUGIN。qmake.pro文件最终看起来是什么样子的?QTPLUGIN+=qxcb
libglu1-mesa-dev is already the newest version (9.0.0-2.1).
libx11-xcb-dev is already the newest version (2:1.6.4-3).
libxcb-dri2-0-dev is already the newest version (1.12-1).
libxcb-dri2-0-dev set to manually installed.
libxcb-dri3-dev is already the newest version (1.12-1).
libxcb-dri3-dev set to manually installed.
libxcb-glx0-dev is already the newest version (1.12-1).
libxcb-present-dev is already the newest version (1.12-1).
libxcb-present-dev set to manually installed.
libxcb-randr0-dev is already the newest version (1.12-1).
libxcb-randr0-dev set to manually installed.
libxcb-render0-dev is already the newest version (1.12-1).
libxcb-render0-dev set to manually installed.
libxcb-shape0-dev is already the newest version (1.12-1).
libxcb-shape0-dev set to manually installed.
libxcb-sync-dev is already the newest version (1.12-1).
libxcb-sync-dev set to manually installed.
libxcb-xfixes0-dev is already the newest version (1.12-1).
libxcb-xfixes0-dev set to manually installed.
libxcb1-dev is already the newest version (1.12-1).
libxi-dev is already the newest version (2:1.7.9-1).
libxrender-dev is already the newest version (1:0.9.10-1).
The following additional packages will be installed:
  libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-dpms0 libxcb-ewmh2 libxcb-record0 libxcb-res0 libxcb-screensaver0 libxcb-xf86dri0 libxcb-xrm0 libxcb-xtest0
  libxcb-xv0 libxcb-xvmc0
The following NEW packages will be installed:
  libxcb-composite0 libxcb-composite0-dev libxcb-cursor-dev libxcb-cursor0 libxcb-damage0 libxcb-damage0-dev libxcb-dpms0 libxcb-dpms0-dev libxcb-ewmh-dev libxcb-ewmh2
  libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-record0 libxcb-record0-dev libxcb-render-util0-dev libxcb-res0 libxcb-res0-dev libxcb-screensaver0
  libxcb-screensaver0-dev libxcb-shm0-dev libxcb-util0-dev libxcb-xf86dri0 libxcb-xf86dri0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xrm-dev libxcb-xrm0 libxcb-xtest0
  libxcb-xtest0-dev libxcb-xv0 libxcb-xv0-dev libxcb-xvmc0 libxcb-xvmc0-dev
./configure -no-eglfs -qpa xcb -qt-xcb -opensource -confirm-license -release -static \