此应用程序无法启动,因为它找不到或加载Qt平台插件"xcb"

This application failed to start because it could not find or load the Qt platform plugin "xcb"

本文关键字:加载 Qt 插件 xcb 找不到 平台 应用程序 启动 因为      更新时间:2023-10-16

这个存在的答案无法解决我的问题

在qt官方示例中,我使用以下CMakeLists.txt

SET(CMAKE_PREFIX_PATH /media/roroco/disk750/Downloads/qtbase)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5Widgets)
find_library(xcb NAMES qxcb PATHS /media/roroco/disk750/Downloads/qtbase/plugins/platforms)
add_executable(systray main.cpp window.cpp systray.qrc)
target_link_libraries(systray Qt5::Widgets ${xcb})

我得到

This application failed to start because it could not find or load the Qt platform plugin "xcb".

如何将"xcb"插件添加到cmake?

更新

我确定find_library(xcb找到库"/media/roroco/disk750/Downloads/qtbase/plugins/platforms/libqxcb.so"。

当我ldd /media/roroco/disk750/Downloads/qtbase/plugins/platforms/libqxcb.so时,有一些 deps 显示"未找到",所以我想原因是

我发现的临时解决方案是添加

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${qt_rt}/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=${qt_rt}/plugins
export QT_QPA_FONTDIR=${qt_rt}/lib/fonts
到 ~/.

bashrc 和源 ~/.bashrc,重新打开编辑器并重试。

但这里有一个问题,当我在 CMakeList 中使用 set(ENV{LD_LIBRARY_PATH} path/to/qtbase/lib) 时.txt而不是在 ~/.bashrc 中使用 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:path/to/qtbase/lib,它不起作用,它仍然引发错误,如果有人知道原因,请为这个问题创建新的答案,我认为在 cmake 中更改环境是更好的方法