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


22

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

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

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

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

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

回答:


12

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

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

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


1
これで問題は解決しました。
プラティックシンハル

3
なぜあなたは内のファイルをリンクするplugins/platforms/usr/binplatformsディレクトリが共有ライブラリが含まれ、/usr/binバイナリファイルに使用されます。の内容はplatforms入るべきではありません/usr/libか?
ネイサンF.

@NathanF。少なくとも私のインストールでは、Qtローダーはプラットフォームを検索します/usr/bin/platforms(理由はわかりません)。だからこの答えも私のために働いた:stackoverflow.com/a/25437758/2249798
m13r

12

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

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))エラーをグーグルで検索し、その解決策を見つけて問題を解決しました。


2
誰があなたに下票したかわかりません。。これは私に私の特定の状況(私の場合のlibc ++への実際のエラーが関連を見つけるために必要なトレースを与えたので、行方不明になったとのlibc ++からインストールする必要がありました- DEV」これを投稿いただきまして、ありがとうございます。。
HBSKan

11

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

straceで、見つからないファイルがであることがわかりましたlibxcb-xinerama.so.0libxcb-xinerama0動作させるには再インストールする必要がありました。

sudo apt-get install --reinstall libxcb-xinerama0

うわー、これはさまざまな再インストールを試みることで、これは何と厄介なことです。とても感謝しています。
ヘンディ

これは助けました!!! 感謝
trsvchn

6

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

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

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

libqt5x11extras5 -Qt 5 X11エクストラ


3

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

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

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


2

私のubuntuタイプでは:

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

働ける


1
これは現状の良い答えではありません。編集して、そのコマンドの正確な動作を説明してください。
You'reAGitForNotUsingGit


2

それらはまだインターネットでそこに他のすべてのオプションを試した後立ち往生している方のために、あなたは、この元の正確なパスに見ることができます悪名高いが、 libqxcb.soにより開口部/ロードするために検索されているQtアプリケーション(VirtualBox-5.2.8Qt使用して、私の場合はアプリ)straceツール。私の場合、VirtualBox-5.2.8ソースからビルドしているため 、ライブラリパスやインストールパスなどではなくlibqxcb.so、以下の場所で検索して
"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"いました。したがって、チェックやその他のソリューションはいずれも機能しませんでした。また、設定によって余分なログも生成されませんでした。defaultQtlddQT_DEBUG_PLUGINS=1

Ubuntu 17.10 x86_64でClang / LLVMを使用して構築したVirtualBoxバイナリでstraceを実行します。

...VirtualBox-5.2.8$ strace ./out/linux.amd64/release/bin/VirtualBox

.
.
.
access(".../VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/.", F_OK) = -1 ENOENT (No such file or directory)
write(2, "Qt FATAL: ", 10Qt FATAL: )              = 10
write(2, "This application failed to start"..., 154This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Reinstalling the application may fix this problem.) = 154
.
.
.

それは私だったhitting-the-nail-on-its-head瞬間、私は作成したsymlinkインストールからQt5.10.1platformsディレクトリは下記: "...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"で、検索パス上に"...VirtualBox-5.2.8/out/linux.amd64/release/bin/"。したがって、を使用VirtualBox-5.2.8してLinux(Ubuntu 17.10 x86_64)のソースからビルドされClang/LLVM、最終的に正常起動しました

実際、ここで別の興味深い点は、かなりの努力の後にVirtualBox-5.2.8完全に使用Clang/Clang++/LLVMして構築したことですUbuntu 17.10 x86_64-を使用FreeBSDして構築VirtualBoxするためのポートがすでにありますclangが、Linuxの場合、GCC見たとおりに大きく依存しているため、取得するのに多大な労力がかかりましたこの時点まで構築に成功できるようにするにはVirtualBox-5.2.8使用して、そのソースからClang/Clang++/LLVMUbuntu 17.10 x86_64目標のためにLinux/AMD64Ubuntu 17.10 x86_64この悪名高いと一緒に他の問題を解決した後、それを起動し、正常)とlibqxcb.so1。

乾杯。


1

これが、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

1

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

sudo apt-get --reinstall install libqt5dbus5 \
libqt5widgets5 libqt5network5 libqt5gui5 libqt5core5a \
libdouble-conversion1 libxcb-xinerama0

0

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

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

問題を解決しました。



-3

インストールからアプリケーションディレクトリにコピーplugins/platforms/libqxcb.soします。qtplatforms/libqxcb.so

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.