“Qt5 uygulaması lint üzerinde qt yüklü olmadan başlatılırken platform eklentisi” xcb “” yüklenemedi


22

Qt5 kullanan linux için başvuru yazdım.

Ancak Qt SDK yüklü olmadan linux üzerinde başlatmaya çalıştığımda, konsoldaki çıktı:

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

Bunu nasıl düzeltebilirim? Belki bazı eklenti dosyasını kopyalamam gerekiyor? Ubuntu'yu Qt5 yüklü olarak kullandığımda, ancak Qt dizinini yeniden adlandırdığımda aynı sorun ortaya çıkıyor. Yani, qt dizininden bazı dosya kullanır ...

libqxcb.soQt SDK dizininde dosya buldum , ancak yerleştirmek /usr/libyardımcı olmuyor.

Yanıtlar:


12

Doğru çözüm bir terminalde aşağıdaki komodu çalıştırıyor:

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

Kaçırdığı sembolik bağlantıyı oluşturur.


1
Bu benim için problemi çözdü.
Pratik Singhal

3
Dosyaları neden plugins/platformsadresine /usr/binbağlıyorsunuz? platformsDizin paylaşılan kütüphaneleri içerir, /usr/binikili dosyaları için kullanılır. İçeriği platformsgirmemeli /usr/libmi?
Nathan

@NathanF. en azından kurulumum için Qt yükleyici platformları arıyor /usr/bin/platforms(nedenini bilmiyorum). Bu cevap da benim için çalıştı: stackoverflow.com/a/25437758/2249798
m13r

12

Bununla karşılaşan gelecekteki okuyuculara - paylaşılan kitaplıklara sembolik bağlarla (tehlikeli bir şekilde) uğraşmaya başlamadan önce,

export QT_DEBUG_PLUGINS=1

ve başarısız olan çalıştırılabilir dosyayı tekrar Terminal'de çalıştırın. Yukarıdaki çözümlerin hiçbiri benim durumumda bu hatanın nedenini ele almadığı için QT tarafından atılan gerçek hata mesajını okuyun.

Açtıktan sonra çıktım 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)

bu yüzden version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))hatayı araştırdım ve sorunun çözümünü buldum .


2
Kimin sana oy verdiğinden emin değilim. Bu bana özel durumumla ilgili gerçek hatayı bulmak için gerekli izleri verdi (benim durumumda libc ++. Bu yüzden eksikti ve libc ++
dev'den yüklenmesi gerekiyordu

11

"Stellarium" çalıştırmaya çalışırken bu hata iletisini aldım.

Strace ile eksik dosyanın olduğunu buldum libxcb-xinerama.so.0. libxcb-xinerama0Çalışması için yeniden yüklemem gerekti :

sudo apt-get install --reinstall libxcb-xinerama0

Vay canına, bu nasıl bir karmaşa çeşitli yeniden yüklemeleri deniyordu. Bunun için minnettarım.
Hendy

Bu yardımcı oldu !!! thanks
trsvchn

6

libqt5x11extras5Paketi şu komutla yüklemeyi deneyin :
sudo apt-get install libqt5x11extras5

Adı farklı olabilir. Bunu arayarak çözebilirsiniz:
sudo apt-cache search qt5 | grep 'X11 extras'

ve sonuç olarak paketin adını alırsınız:

libqt5x11extras5 - Qt 5 X11 ekstraları


3

Kitaplık bağımlılıklarını nasıl çözdüğünü görmek için uygulama yürütülebilir dosyasında ldd komutunu çalıştırın.

Ayrıca bu basit gui uygulaması durumunda hangi temel kütüphanelerin gerekli olduğunu anlamak için bir zorunluluktur okuyun:

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


2

Benim ubuntu türümde:

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

Çalışabilir


1
Bu durduğu için iyi bir cevap değil. Bu komutun tam olarak ne yaptığını açıklamak için lütfen düzenleyin.
YouAGitForNotUsingGit

Benim için çalışmadı
Ratbert

2

Hala internette orada Tüm seçenekleri denedikten sonra sıkışmış olanlar için, bu hangi tam yoluna bakabilirsiniz namlı libqxcb.so açılması için, içinde arandı / tarafından yükleme QtApp ( VirtualBox-5.2.8olduğu Qtkullanarak, benim durumumda uygulaması) strace aracı. Benim durumumda, VirtualBox-5.2.8kaynağından inşa ettiğim için kütüphane yollarında, kurulum yolunda değil libqxcb.so, aşağıdaki konumda arama yapıyordu . Yani, hiçbir kontrol ve diğer çözümler işe yaramadı. Ayrıca ayar herhangi bir ekstra günlük üretmedi.
"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"defaultQtlddQT_DEBUG_PLUGINS=1

Ubuntu 17.10 x86_64 üzerinde Clang / LLVM kullanarak oluşturduğum VirtualBox ikili üzerinde çalışan 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
.
.
.

Bu benim oldu hitting-the-nail-on-its-headan ve benim yarattığım symlinkyüklü gelen Qt5.10.1'ın platformsaşağıda belirtilen dizinde: "...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"olan yolu arandı üzerine "...VirtualBox-5.2.8/out/linux.amd64/release/bin/". Böylece, VirtualBox-5.2.8Linux ( Ubuntu 17.10 x86_64) kullanarak kaynaktan inşa Clang/LLVM, sonunda başarıyla başlatıldı !

Aslında, buradaki ilginç bir şey de, VirtualBox-5.2.8tamamen büyük bir çabadan sonra Clang/Clang++/LLVMüzerine inşa ettim Ubuntu 17.10 x86_64- çünkü FreeBSD, zaten bina VirtualBoxkullanmak için bir liman var, clangancak Linux için, GCCgördüğüm gibi büyük ölçüde bağımlı ve bu nedenle almak için çok çaba harcadı. Bu noktaya inşa başarıyla muktedir VirtualBox-5.2.8kullanarak kaynağından Clang/Clang++/LLVMüzerinde Ubuntu 17.10 x86_64hedef için Linux/AMD64( Ubuntu 17.10 x86_64bu namlı ile birlikte diğer sorunları çözmek sonra başlatmak başarıyla) ve libqxcb.sobiri.

Şerefe.


1

Ubuntu 18.04'te emülatör çalıştırdığımda birkaç sorunu nasıl çözeceğim.

$ vim ~ / .bashrc

Dosyanın sonuna aşağıdaki satırları ekleyin. Android SDK'mı şuraya yükledim:/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

Bunu çalıştırmak bana çözdü:

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

0

Bunun ardında eksik olan çeşitli şeyler olabilir. Benim durumumda (Debian 9.7), QT_DEBUG_PLUGINS = 1 eksik kütüphaneleri izlemeye yardımcı oldu ve

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

sorunu çözdü.



-3

Kopya plugins/platforms/libqxcb.sosenin dan qtyüklemek platforms/libqxcb.soiçin uygulama dizininde.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.