Qt5を使用するLinux用のアプリケーションを作成しました。
しかし、Qt SDKがインストールされていないLinuxで起動しようとすると、コンソールの出力は次のようになります。
Failed to load platform plugin "xcb". Available platforms are:
どうすれば修正できますか?おそらくプラグインファイルをコピーする必要がありますか? Qt5をインストールした状態でUbuntuを使用しているが、Qtディレクトリの名前を変更すると、同じ問題が発生します。したがって、qtディレクトリのファイルを使用します...
Qt SDKディレクトリにファイルlibqxcb.so
が見つかりましたが、/usr/lib
に配置しても役に立ちません。
正しい解決策は、次のコマンドを端末で実行することです。
Sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/
見逃しているシンボリックリンクを作成します。
これに出くわす将来の読者には、共有ライブラリへのシンボリックリンクをいじり始める前に(危険なことに)実行することを強くお勧めします。
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))
エラーをグーグルで検索して その解決策 を見つけ、問題を解決しました。
次のコマンドでlibqt5x11extras5
パッケージをインストールしてください:Sudo apt-get install libqt5x11extras5
名前は異なる場合があります。以下を検索することでそれを理解できます:Sudo apt-cache search qt5 | grep 'X11 extras'
そして、結果としてパッケージの名前を取得します:
libqt5x11extras5-Qt 5 X11エクストラ
「Stellarium」を実行しようとしたときにこのエラーメッセージが表示されました。
Straceを使用すると、見つからないファイルがlibxcb-xinerama.so.0
であることがわかりました。 libxcb-xinerama0
を再インストールして、機能させる必要がありました。
Sudo apt-get install --reinstall libxcb-xinerama0
アプリケーションの実行可能ファイルでlddを実行して、ライブラリの依存関係を解決する方法を確認します。
また、これは、GUIアプリケーションの単純な場合に必要な必須ライブラリを理解するために読む必要があります。
私のubuntuタイプでは:
Sudo ln -sf /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ /usr/bin/platforms
動作可能
これを実行すると解決しました:
Sudo apt-get --reinstall install libqt5dbus5 \
libqt5widgets5 libqt5network5 libqt5gui5 libqt5core5a \
libdouble-conversion1 libxcb-xinerama0
これが、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
これにはさまざまなものが欠けているようです。私の場合(Debian 9.7)、QT_DEBUG_PLUGINS = 1は、欠落しているライブラリを追跡するのに役立ちました。
$ sudo apt-get install libxcb-render-util0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4
問題を解決しました。