这个exist answer无法解决我的问题

在qt official example中,我使用以下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时,有一些部门显示“未找到”,所以我想原因是

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

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,重新打开编辑器,然后重试。

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

10-08 01:52