web-dev-qa-db-ja.com

「qtがインストールされていないLinuxでqt5アプリを起動中にプラットフォームプラグイン「xcb」をロードできませんでした」

Qt5を使用するLinux用のアプリケーションを作成しました。

しかし、Qt SDKがインストールされていないLinuxで起動しようとすると、コンソールの出力は次のようになります。

Failed to load platform plugin "xcb". Available platforms are:

どうすれば修正できますか?おそらくプラグインファイルをコピーする必要がありますか? Qt5をインストールした状態でUbuntuを使用しているが、Qtディレクトリの名前を変更すると、同じ問題が発生します。したがって、qtディレクトリのファイルを使用します...

Qt SDKディレクトリにファイルlibqxcb.soが見つかりましたが、/usr/libに配置しても役に立ちません。

18
locomotion

正しい解決策は、次のコマンドを端末で実行することです。

Sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/

見逃しているシンボリックリンクを作成します。

12
Francesco

これに出くわす将来の読者には、共有ライブラリへのシンボリックリンクをいじり始める前に(危険なことに)実行することを強くお勧めします。

export QT_DEBUG_PLUGINS=1

次に、ターミナルで失敗した実行可能ファイルを再度実行します。私の場合、上記の解決策はいずれもこのエラーの原因に対処していないため、QTによってスローされる実際のエラーメッセージを読んでください。

QT_DEBUG_PLUGINSをオンにした後の私の出力は:

QFactoryLoader::QFactoryLoader() checking directory path "/opt/PostgreSQL/9.6/pgAdmin 4/bin/platforms" ...
loaded library "/opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so"
QLibraryPrivate::loadPlugin failed on "/opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so" : "Cannot load library /opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so: (/opt/PostgreSQL/9.6/lib/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))"
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.
Aborted (core dumped)

そこでversion `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))エラーをグーグルで検索して その解決策 を見つけ、問題を解決しました。

7
SlugFrisco

次のコマンドでlibqt5x11extras5パッケージをインストールしてください:
Sudo apt-get install libqt5x11extras5

名前は異なる場合があります。以下を検索することでそれを理解できます:
Sudo apt-cache search qt5 | grep 'X11 extras'

そして、結果としてパッケージの名前を取得します:

libqt5x11extras5-Qt 5 X11エクストラ

6
Bonus_05

「Stellarium」を実行しようとしたときにこのエラーメッセージが表示されました。

Straceを使用すると、見つからないファイルがlibxcb-xinerama.so.0であることがわかりました。 libxcb-xinerama0を再インストールして、機能させる必要がありました。

Sudo apt-get install --reinstall libxcb-xinerama0
6
wmeyer

アプリケーションの実行可能ファイルでlddを実行して、ライブラリの依存関係を解決する方法を確認します。

また、これは、GUIアプリケーションの単純な場合に必要な必須ライブラリを理解するために読む必要があります。

http://qt-project.org/doc/qt-5/linux-deployment.html

3
Dorian

私のubuntuタイプでは:

Sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/platforms

動作可能

2
李智坚

これを実行すると解決しました:

Sudo apt-get --reinstall install libqt5dbus5 \
libqt5widgets5 libqt5network5 libqt5gui5 libqt5core5a \
libdouble-conversion1 libxcb-xinerama0
1
FerranB

これが、Ubuntu 18.04でエミュレータを実行しているときのいくつかの問題を解決する方法です。

$ vim〜/ .bashrc

ファイルの最後に次の行を追加します。 Android SDKを/opt/Android/Sdkにインストールします

export Android_HOME=/opt/Android/Sdk
export Android_SDK_ROOT=/opt/Android/Sdk
export Android_AVD_HOME=/home/<your name>/.Android/avd
export LD_LIBRARY_PATH="/opt/Android/Sdk/emulator/lib64:$LD_LIBRARY_PATH"
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins
0
MZeng

これにはさまざまなものが欠けているようです。私の場合(Debian 9.7)、QT_DEBUG_PLUGINS = 1は、欠落しているライブラリを追跡するのに役立ちました。

$ sudo apt-get install libxcb-render-util0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4

問題を解決しました。

0
Antos