簡體   English   中英

Raspberry PI 3的C ++ Qt 5.10交叉編譯此應用程序無法啟動,因為無法在“”中找到或加載Qt平台插件“ xcb”。

[英]C++ Qt 5.10 Cross compiling for Raspberry PI 3 This application failed to start because it could not find or load the Qt platform plugin “xcb” in “”

我試圖為我的Rasperry pi 3交叉編譯qt 5.10。我使用了以下指南來完成任務: 逐步編譯

我已經使用以下命令執行此操作:

sudo ./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-
gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v -no-use-gold-linker

這樣做沒有問題。 現在,我嘗試運行示例qopenglwidget,但出現以下錯誤消息:

須藤./qopenglwidget

此應用程序無法啟動,因為無法在“”中找到或加載Qt>平台插件“ xcb”。

可用的平台插件為:eglfs,linuxfb,minimum,minimlegl,offscreen,> vnc,xcb。 重新安裝該應用程序可能會解決此問題。

中止

我在應用程序上嘗試了ldd並獲得以下輸出:

ldd qopenglwidget
    linux-vdso.so.1 (0x7e9a4000)
    /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f77000)
    libQt5Widgets.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5 (0x76a11000)
    libQt5Gui.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5 (0x765eb000)
    libQt5Core.so.5 => /usr/local/qt5pi2/lib/libQt5Core.so.5 (0x760b9000)
    libGLESv2.so => /opt/vc/lib/libGLESv2.so (0x76094000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x7606b000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x75f23000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x75ea4000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75e77000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75d38000)
    /lib/ld-linux-armhf.so.3 (0x76f8d000)
    libharfbuzz.so.0 => /usr/lib/arm-linux-gnueabihf/libharfbuzz.so.0 (0x75ca1000)
    libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x75c7a000)
    libpng16.so.16 => /usr/lib/arm-linux-gnueabihf/libpng16.so.16 (0x75c40000)
    libdouble-conversion.so.1 => /usr/lib/arm-linux-gnueabihf/libdouble-conversion.so.1 (0x75c1e000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x75c0b000)
    libgthread-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so.0 (0x75bf9000)
    libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x75af1000)
    libEGL.so => /opt/vc/lib/libEGL.so (0x75ab8000)
    libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x75a91000)
    libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x75a7b000)
    libvcos.so => /opt/vc/lib/libvcos.so (0x75a61000)
    librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x75a4a000)
    libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x759af000)
    libgraphite2.so.3 => /usr/lib/arm-linux-gnueabihf/libgraphite2.so.3 (0x7597c000)
    libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x75903000)

我試圖將LDD_LIBRARY_PATH設置為/ usr / local / qt5pi2 / platforms,但是它不起作用。

請有人知道我做錯了什么嗎?

添加完QT_QPA_PLATFORM_PLUGIN_PATH之后,出現以下錯誤:

./qopenglwidget此應用程序無法啟動,因為無法在“ / usr / local / qt5pi / plugins / platforms /”中找到或加載Qt>平台插件“ xcb”。

可用的平台插件為:eglfs(來自> / usr / local / qt5pi / plugins / platforms /),linuxfb(來自> / usr / local / qt5pi / plugins / platforms /),最小(來自> / usr / local / qt5pi /插件/平台/),minimalegl(來自> / usr / local / qt5pi / plugins / platforms /),屏幕外(來自> / usr / local / qt5pi / plugins / platforms /),vnc(來自> / usr / local / qt5pi / plugins / platforms /),xcb(來自> / usr / local / qt5pi / plugins / platforms /),eglfs,linuxfb,minimum,minimalegl,> offscreen,vnc。

重新安裝該應用程序可能會解決此問題。 中止

在paolo的幫助下(非常感謝您)我已經導出了

QT_QPA_PLATFORM_PLUGIN_PATH 

之后,我做了以下工作:

export LD_LIBRARY_PATH=/usr/local/qt5pi/lib
sudo ldconfig

現在對我有用。

我其他人將嘗試為樹莓派交叉編譯qt 5.10,從空白系統開始(樹莓派拉伸)並僅執行上述指南中的操作非常重要。

我認為插件的路徑為空,請嘗試將其設置為

export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/platforms

在啟動應用程序之前(不過,我提供的路徑只是一個示例)。

如果這不能解決問題,則無法加載xcb插件(它可能是目標設備上的x服務器問題)。 嘗試在啟動之前加載另一個導出QT_QPA_PLATFORM的插件,例如:

export QT_QPA_PLATFORM=eglfs

要么

export QT_QPA_PLATFORM=minimalegl

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM