Ich habe eine Anwendung für Linux geschrieben, die Qt5 verwendet.
Aber wenn ich versuche, es unter Linux zu starten, ohne dass Qt SDK installiert ist, ist die Ausgabe in der Konsole:
Failed to load platform plugin "xcb". Available platforms are:
Wie kann ich das beheben? Vielleicht muss ich eine Plugin-Datei kopieren? Wenn ich Ubuntu mit Qt5 verwende, aber das Qt-Verzeichnis umbenenne, tritt das gleiche Problem auf. Also verwendet es eine Datei aus dem qt-Verzeichnis ...
Ich habe eine Datei libqxcb.so
im Qt SDK-Verzeichnis gefunden, aber das Ablegen in /usr/lib
hilft nicht.
plugins/platforms
zu/usr/bin
? Dasplatforms
Verzeichnis enthält gemeinsam genutzte Bibliotheken und/usr/bin
wird für Binärdateien verwendet. Sollte nicht der Inhalt vonplatforms
hineingehen/usr/lib
?/usr/bin/platforms
(ich weiß nicht warum). Diese Antwort hat auch bei mir funktioniertAllen zukünftigen Lesern, die darauf stoßen - bevor Sie (gefährlich) mit Symlinks zu gemeinsam genutzten Bibliotheken herumspielen, empfehle ich dringend, dass Sie mitmachen
export QT_DEBUG_PLUGINS=1
Führen Sie anschließend die fehlerhafte ausführbare Datei erneut im Terminal aus. Lesen Sie die eigentliche Fehlermeldung, die von QT ausgegeben wurde, da in meinem Fall keine der oben genannten Lösungen die Ursache für diesen Fehler ansprach.
Meine Ausgabe nach dem Einschalten
QT_DEBUG_PLUGINS
war:so googelte ich dann den fehler
version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))
und fand die lösung dafür , die das problem löste.quelle
Ich hatte diese Fehlermeldung beim Versuch, "Stellarium" auszuführen.
Mit strace fand ich, dass die fehlende Datei war
libxcb-xinerama.so.0
. Ich musste neu installierenlibxcb-xinerama0
, damit es funktioniert:quelle
Versuchen Sie, das
libqt5x11extras5
Paket mit folgendem Befehl zu installieren :sudo apt-get install libqt5x11extras5
Der Name kann unterschiedlich sein. Sie können es herausfinden, indem Sie suchen:
sudo apt-cache search qt5 | grep 'X11 extras'
und du bekommst den Namen des Pakets als Ergebnis:
quelle
Führen Sie ldd für Ihre ausführbare Anwendung aus, um zu sehen, wie Bibliotheksabhängigkeiten aufgelöst werden.
Dies ist auch ein Muss, um zu verstehen, welche wichtigen Bibliotheken für einfache GUI-Anwendungen benötigt werden:
http://qt-project.org/doc/qt-5/linux-deployment.html
quelle
In meinem Ubuntu-Typ:
Kann arbeiten
quelle
Für diejenigen , die immer noch stecken geblieben sind , nachdem jede andere Möglichkeit gibt , im Internet versuchen, Sie in genauen Pfad suchen kann , aus dem diese berüchtigte
libqxcb.so
suchten wird, zum Öffnen / Laden derQt
App (VirtualBox-5.2.8
dieQt
App in meinem Fall), mit der Werkzeug spannen . In meinem FallVirtualBox-5.2.8
suchte ich, da ich von der Quelle aus erstellte,libqxcb.so
an der folgenden Position:"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"
und nicht in dendefault
Bibliothekspfaden,Qt
Installationspfad usw. Alsoldd
funktionierte keine der Überprüfungen und anderen Lösungen. Und auch beim Einstellen wurdenQT_DEBUG_PLUGINS=1
keine zusätzlichen Protokolle erstellt.Ausführen von strace auf der VirtualBox-Binärdatei, die ich mit Clang / LLVM unter Ubuntu 17.10 x86_64 erstellt habe:
Das war mein
hitting-the-nail-on-its-head
Moment, und ich erstellt diesymlink
von dem installiertenQt5.10.1
‚splatforms
Verzeichnis unten erwähnt:"...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"
auf den Weg gesucht , die ist"...VirtualBox-5.2.8/out/linux.amd64/release/bin/"
. Also,VirtualBox-5.2.8
von Source auf Linux (Ubuntu 17.10 x86_64
) mit gebautClang/LLVM
, endlich erfolgreich gestartet !In der Tat, hier ein andere interessante Sache ist , dass habe ich gebaut
VirtualBox-5.2.8
vollständig mitClang/Clang++/LLVM
aufUbuntu 17.10 x86_64
nach erheblichen Aufwand - fürFreeBSD
gibt es bereits ein Port für den BauVirtualBox
verwenden ,clang
aber für Linux, es ist stark abhängig von ,GCC
wie ich sehe und es dauerte deshalb viel Mühe zu bekommen bis zu diesem Punkt, um in der Lage zu sein, erfolgreichVirtualBox-5.2.8
von seiner Quelle mitClang/Clang++/LLVM
onUbuntu 17.10 x86_64
for targetLinux/AMD64
(Ubuntu 17.10 x86_64
) zu bauen und sie erfolgreich zu starten, nachdem andere Probleme zusammen mit diesem berüchtigtenlibqxcb.so
behoben wurden.Prost.
quelle
So lösen Sie einige Probleme, wenn ich unter Ubuntu 18.04 den Emulator verwende.
Fügen Sie die folgenden Zeilen am Ende der Datei hinzu. Ich installiere mein Android SDK unter
/opt/Android/Sdk
quelle
Laufen dies löste es für mich:
quelle
Es scheint, dass verschiedene Dinge dahinter fehlen können. In meinem Fall (Debian 9.7) hat QT_DEBUG_PLUGINS = 1 dazu beigetragen, die fehlenden Bibliotheken und zurückzuverfolgen
$ sudo apt-get installiere libxcb-render-util0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4
Problem gelöst.
quelle
Erstellen Sie die Datei qt.conf in Ihrem Projekt und fügen Sie Folgendes hinzu:
https://doc.qt.io/qt-5/qt-conf.html
quelle
Kopieren Sie
plugins/platforms/libqxcb.so
von Ihrerqt
Installationplatforms/libqxcb.so
in Ihr Anwendungsverzeichnis.quelle