J'ai écrit une application pour Linux qui utilise Qt5.
Mais lorsque j'essaie de le lancer sur linux sans Qt SDK installé, la sortie dans la console est:
Failed to load platform plugin "xcb". Available platforms are:
Comment puis-je réparer cela? Peut-être que je dois copier un fichier de plugin? Lorsque j'utilise Ubuntu avec Qt5 installé, mais que je renomme le répertoire Qt, le même problème se produit. Donc, il utilise un fichier du répertoire qt ...
J'ai trouvé un fichier libqxcb.so
dans le répertoire Qt SDK, mais le placer /usr/lib
n'aide pas.
plugins/platforms
à/usr/bin
? Leplatforms
répertoire contient des bibliothèques partagées,/usr/bin
est utilisé pour les fichiers binaires. Le contenu de ne devrait-il pasplatforms
entrer/usr/lib
?/usr/bin/platforms
(je ne sais pas pourquoi). Donc, cette réponse a également fonctionné pour moi: stackoverflow.com/a/25437758/2249798À tous les futurs lecteurs qui rencontrent cela - avant de commencer (dangereusement) à jouer avec des liens symboliques vers des bibliothèques partagées, je vous suggère fortement d'exécuter
export QT_DEBUG_PLUGINS=1
puis réexécutez votre exécutable défaillant dans le terminal. Lisez le message d'erreur réel lancé par QT, car aucune des solutions ci-dessus n'a traité la cause de cette erreur dans mon cas.
Ma sortie après avoir allumé
QT_DEBUG_PLUGINS
était:J'ai donc recherché l'
version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))
erreur sur Google et trouvé la solution à cela , ce qui a résolu le problème.la source
J'ai eu ce message d'erreur en essayant d'exécuter "Stellarium".
Avec strace, j'ai trouvé que le fichier manquant était
libxcb-xinerama.so.0
. J'ai dû réinstallerlibxcb-xinerama0
pour le faire fonctionner:la source
Essayez d'installer le
libqt5x11extras5
package avec la commande:sudo apt-get install libqt5x11extras5
Le nom peut être différent. Vous pouvez le découvrir en recherchant:
sudo apt-cache search qt5 | grep 'X11 extras'
et vous obtenez le nom du paquet comme résultat:
la source
Exécutez ldd sur l'exécutable de votre application pour voir comment il résout les dépendances de bibliothèque.
C'est également une lecture incontournable pour comprendre quelles bibliothèques essentielles sont nécessaires dans le cas simple d'une application gui:
http://qt-project.org/doc/qt-5/linux-deployment.html
la source
Dans mon type ubuntu:
Peut marcher
la source
Pour ceux qui sont toujours bloqués après avoir essayé toutes les autres options sur Internet, vous pouvez rechercher le chemin exact à partir duquel ce notoire
libqxcb.so
est recherché, pour l'ouverture / le chargement par l'Qt
application (VirtualBox-5.2.8
c'est l'Qt
application dans mon cas), en utilisant le outil strace . Dans mon cas, puisque je construisais àVirtualBox-5.2.8
partir de sa source, il cherchaitlibqxcb.so
dans l'emplacement ci-dessous:"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"
et non dans lesdefault
chemins de bibliothèque,Qt
chemin d'installation, etc. Donc, aucune desldd
vérifications et autres solutions n'a fonctionné. Et le réglageQT_DEBUG_PLUGINS=1
n'a pas non plus produit de journaux supplémentaires.Exécuter strace sur le binaire VirtualBox que j'ai construit en utilisant Clang / LLVM sur Ubuntu 17.10 x86_64:
C'était mon
hitting-the-nail-on-its-head
moment, et j'ai créé lesymlink
du installéQt5.10.1
l »platforms
annuaire mentionné ci - dessous:"...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"
sur le chemin qui est recherché"...VirtualBox-5.2.8/out/linux.amd64/release/bin/"
. Ainsi,VirtualBox-5.2.8
construit à partir des sources sur Linux (Ubuntu 17.10 x86_64
) en utilisantClang/LLVM
, enfin lancé avec succès !En fait, une autre chose intéressante est que, j'ai construit
VirtualBox-5.2.8
entièrement en utilisantClang/Clang++/LLVM
leUbuntu 17.10 x86_64
après un effort important - pourFreeBSD
, il y a déjà un port pour la construction enVirtualBox
utilisantclang
mais pour Linux, il est fortement dépendanteGCC
que j'ai vu , et donc il a fallu beaucoup d'efforts pour obtenir à ce point pour pouvoir construire avec succès àVirtualBox-5.2.8
partir de sa source en utilisantClang/Clang++/LLVM
onUbuntu 17.10 x86_64
for targetLinux/AMD64
(Ubuntu 17.10 x86_64
) et le lancer avec succès après avoir résolu d'autres problèmes avec ce problème notoirelibqxcb.so
.À votre santé.
la source
Voilà comment résoudre quelques problèmes lorsque j'utilise l'émulateur sur Ubuntu 18.04.
Ajoutez les lignes suivantes à la fin du fichier. J'installe mon SDK Android sur
/opt/Android/Sdk
la source
L'exécution de cela m'a résolu:
la source
Il semble qu'il puisse y avoir diverses choses différentes derrière cela. Dans mon cas (Debian 9.7), QT_DEBUG_PLUGINS = 1 a aidé à retrouver les bibliothèques manquantes, et
$ sudo apt-get install libxcb-render-util0 libxcb-image0 libxcb-keysymes1 libxcb-icccm4
résolu le problème.
la source
Créez le fichier qt.conf dans votre projet et ajoutez:
https://doc.qt.io/qt-5/qt-conf.html
la source
Copiez
plugins/platforms/libqxcb.so
de votreqt
installation versplatforms/libqxcb.so
dans votre répertoire d'application.la source