Saya menulis aplikasi untuk linux yang menggunakan Qt5.
Tetapi ketika saya mencoba meluncurkannya di linux tanpa Qt SDK terinstal, output di konsol adalah:
Failed to load platform plugin "xcb". Available platforms are:
Bagaimana saya bisa memperbaikinya? Mungkin saya perlu menyalin beberapa file plugin? Ketika saya menggunakan Ubuntu dengan Qt5 terinstal, tapi saya mengganti nama direktori Qt, masalah yang sama terjadi. Jadi, ia menggunakan beberapa file dari direktori qt ...
Saya telah menemukan file libqxcb.so
di direktori Qt SDK, tetapi menempatkannya di /usr/lib
tidak membantu.
plugins/platforms
ke/usr/bin
? Theplatforms
direktori berisi shared library,/usr/bin
digunakan untuk file biner. Bukankah seharusnya isinyaplatforms
masuk/usr/lib
?/usr/bin/platforms
(saya tidak tahu mengapa). Jadi jawaban ini juga berfungsi untuk saya: stackoverflow.com/a/25437758/2249798Untuk setiap pembaca masa depan yang menemukan ini - sebelum Anda mulai (berbahaya) bermain-main dengan symlink ke perpustakaan bersama, saya sangat menyarankan Anda menjalankan
export QT_DEBUG_PLUGINS=1
dan kemudian jalankan kembali eksekusi Anda yang gagal di Terminal. Baca pesan kesalahan aktual yang dilemparkan oleh QT, karena tidak ada solusi di atas yang mengatasi penyebab kesalahan ini dalam kasus saya.
Output saya setelah dihidupkan
QT_DEBUG_PLUGINS
adalah:jadi saya kemudian mencari
version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))
kesalahannya dan mencari solusinya , yang memecahkan masalah.sumber
Saya mendapat pesan kesalahan ini ketika mencoba menjalankan "Stellarium".
Dengan strace saya menemukan bahwa file yang hilang itu
libxcb-xinerama.so.0
. Saya harus menginstal ulanglibxcb-xinerama0
untuk membuatnya berfungsi:sumber
Cobalah untuk menginstal
libqt5x11extras5
paket dengan perintah:sudo apt-get install libqt5x11extras5
Nama mungkin berbeda. Anda dapat mengetahuinya dengan mencari:
sudo apt-cache search qt5 | grep 'X11 extras'
dan kamu mendapatkan nama paket sebagai hasilnya:
sumber
Jalankan ldd pada aplikasi Anda yang dapat dieksekusi untuk melihat bagaimana ia menyelesaikan dependensi pustaka.
Juga ini adalah harus dibaca untuk memahami apa perpustakaan penting yang diperlukan dalam kasus sederhana aplikasi gui:
http://qt-project.org/doc/qt-5/linux-deployment.html
sumber
Dalam jenis ubuntu saya:
Bisa bekerja
sumber
Bagi mereka yang masih terjebak setelah mencoba setiap opsi lain di internet, Anda dapat melihat ke jalur yang tepat dari mana ini terkenal
libqxcb.so
sedang dicari, untuk membuka / memuat olehQt
App (VirtualBox-5.2.8
adalahQt
aplikasi dalam kasus saya), menggunakan alat strace . Dalam kasus saya, karena saya membangunVirtualBox-5.2.8
dari sumbernya, ia mencarilibqxcb.so
di lokasi di bawah ini:"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"
dan tidak didefault
jalur perpustakaan, jalurQt
instalasi, dll. Jadi, tidak adaldd
pemeriksaan, dan solusi lain yang berfungsi. Dan pengaturanQT_DEBUG_PLUGINS=1
juga tidak menghasilkan log tambahan.Menjalankan strace pada biner VirtualBox yang saya buat menggunakan Dentang / LLVM di Ubuntu 17.10 x86_64:
Itu saya
hitting-the-nail-on-its-head
saat, dan saya menciptakansymlink
dari yang diinstalQt5.10.1
'splatforms
direktori yang disebutkan di bawah:"...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"
ke dicari jalan yang"...VirtualBox-5.2.8/out/linux.amd64/release/bin/"
. Dengan demikian,VirtualBox-5.2.8
dibangun dari sumber di Linux (Ubuntu 17.10 x86_64
) menggunakanClang/LLVM
, akhirnya diluncurkan dengan sukses !Bahkan, hal lain yang menarik di sini adalah bahwa, saya telah dibangun
VirtualBox-5.2.8
seluruhnya menggunakanClang/Clang++/LLVM
padaUbuntu 17.10 x86_64
setelah upaya substansial - untukFreeBSD
, sudah ada port untuk membangunVirtualBox
menggunakanclang
tetapi untuk Linux, itu sangat tergantung padaGCC
saat aku melihat dan karena itu mengambil banyak usaha untuk mendapatkan ke titik ini untuk dapat berhasil membangunVirtualBox-5.2.8
dari sumbernya menggunakanClang/Clang++/LLVM
onUbuntu 17.10 x86_64
for targetLinux/AMD64
(Ubuntu 17.10 x86_64
) dan berhasil meluncurkannya setelah menyelesaikan masalah lain bersama dengan yang terkenal inilibqxcb.so
.Bersulang.
sumber
Ini adalah bagaimana menyelesaikan beberapa masalah ketika saya menjalankan emulator di Ubuntu 18.04.
Tambahkan baris berikut di akhir file. Saya menginstal Android SDK saya di
/opt/Android/Sdk
sumber
Menjalankan ini menyelesaikannya untuk saya:
sumber
Sepertinya ada berbagai hal yang berbeda di balik ini. Dalam kasus saya (Debian 9.7), QT_DEBUG_PLUGINS = 1 membantu melacak kembali pustaka yang hilang, dan
$ sudo apt-get install libxcb-render-util0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4
memecahkan masalah.
sumber
Buat file qt.conf di proyek Anda dan tambahkan:
https://doc.qt.io/qt-5/qt-conf.html
sumber
Salin
plugins/platforms/libqxcb.so
dariqt
instal Anda keplatforms/libqxcb.so
dalam direktori aplikasi Anda.sumber