76 votes

"Failed to load platform plugin "xcb" " lors du lancement d'une application qt5 sous linux sans qt installé

J'ai écrit une application pour linux qui utilise Qt5.

Mais lorsque j'essaie de le lancer sous Linux sans Qt SDK installé, la sortie dans la console est la suivante :

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

Comment puis-je réparer cela ? Peut-être dois-je 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é le fichier libqxcb.so dans le répertoire Qt SDK, mais en le plaçant dans le répertoire /usr/lib n'est pas utile.

74voto

wmeyer Points 841

J'ai eu ce message d'erreur en essayant de lancer "Stellarium".

Avec strace j'ai trouvé que le fichier manquant était libxcb-xinerama.so.0 . J'ai dû réinstaller libxcb-xinerama0 pour que ça marche :

sudo apt-get install --reinstall libxcb-xinerama0

59voto

Casey L Points 831

Pour tous les futurs lecteurs qui rencontreront ce problème, avant de commencer à jouer (dangereusement) avec des liens symboliques vers des bibliothèques partagées, je vous suggère fortement d'exécuter la commande suivante

export QT_DEBUG_PLUGINS=1

puis exécutez à nouveau votre exécutable défaillant dans le Terminal. Lisez le message d'erreur réel affiché par QT, car aucune des solutions ci-dessus n'a permis de résoudre la cause de cette erreur dans mon cas.

Mon résultat après avoir allumé QT_DEBUG_PLUGINS était :

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)

J'ai donc cherché sur Google le version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16)) et a trouvé la solution à ce problème ce qui a résolu le problème.

18voto

Bonus_05 Points 181

Essayez d'installer libqt5x11extras5 avec la commande :
sudo apt-get install libqt5x11extras5

Le nom peut être différent. Vous pouvez le découvrir en faisant une recherche :
sudo apt-cache search qt5 | grep 'X11 extras'

et vous obtenez le nom du paquet comme résultat :

libqt5x11extras5 - Qt 5 X11 extras

15voto

Francesco Points 275

La solution correcte consiste à exécuter la commande suivante sur un terminal :

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

Il crée le lien symbolique qu'il a manqué.

7voto

Dan Points 607

L'exécution de ceci a résolu le problème pour moi :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X