2016-02-27 226 views
0

exist answer無法修復我的問題這個應用程序未能啓動,因爲它無法找到或加載了Qt平臺插件「XCB」

在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找到LIB 「/media/roroco/disk750/Downloads/qtbase/plugins/platforms/libqxcb.so」。

+0

如果您在Ubuntu或Debian上,則xcb插件是'/ usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so'。它由'libqt5gui5'包安裝​​,所以它應該在那裏。 – Velkan

回答

0

當我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,重新打開編輯器,然後重試。

,但這裏的問題是,當我的CMakeLists.txt使用set(ENV{LD_LIBRARY_PATH} path/to/qtbase/lib),而不是在〜/ .bashrc export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:path/to/qtbase/lib,這是行不通的,它仍然引發錯誤,如果有人知道其中的原因,請對這個問題建立新的答案,我認爲在cmake中更改env是更好的方法

+0

不要發佈其他信息作爲答案。更好地編輯或評論問題訊息。 – Velkan

相關問題