我一直在尝试使用raspbian strave上的qt5创建一个GUI应用程序,但是除非我明确地告诉它作为XCB运行,否则该应用程序无法正确启动。这很好,因为我不需要在EGLFS模式下运行它,所以我返回并在没有EGLFS支持的情况下配置了QT5,但它仍然可以做同样的事情。
配置:
/qt-everywhere-src-5.10.1/configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=arm-linux-gnueabihf- -sysroot /home/bast/cross-compile-rpi/sysroot -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtwebengine -skip qtscript -nomake examples -make libs -no-icu -xcb -no-eglfs -nomake tests -nomake examples -v
当我运行并进行安装时,然后将文件rsync rsync rsync rsync默认为eglfs模式,并且应用程序将使用此输出冻结:
[9;0]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).
如果我以XCB的形式运行它,一切都可以很好地工作,并且我需要沿其他窗口运行的应用程序,它并不是要作为PI的主要窗口运行。
用-no-opengl
替换-opengl es2
选项,然后重试
也许您需要在Raspberry Pi
上设置环境export QT_QPA_PLATFORM=xcb