Escribí una aplicación para Linux que usa Qt5.
Pero cuando intento iniciarlo en Linux sin Qt SDK instalado, el resultado en la consola es:
Failed to load platform plugin "xcb". Available platforms are:
¿Cómo puedo arreglar esto? ¿Quizás necesito copiar algún archivo de complemento? Cuando uso Ubuntu con Qt5 instalado, pero cambio el nombre del directorio Qt, ocurre el mismo problema. Entonces, usa algún archivo del directorio qt ...
Encontré el archivo libqxcb.so
en el directorio Qt SDK, pero colocarlo /usr/lib
no ayuda.
plugins/platforms
a/usr/bin
? Elplatforms
directorio contiene bibliotecas compartidas,/usr/bin
se utiliza para archivos binarios. ¿No deberíanplatforms
entrar los contenidos de/usr/lib
?/usr/bin/platforms
(no sé por qué). Entonces esta respuesta también funcionó para mí: stackoverflow.com/a/25437758/2249798Para cualquier lector futuro que se encuentre con esto, antes de comenzar (peligrosamente) a jugar con enlaces simbólicos a bibliotecas compartidas, le sugiero encarecidamente que ejecute
export QT_DEBUG_PLUGINS=1
y luego ejecute su ejecutable que falla en la Terminal. Lea el mensaje de error real emitido por QT, ya que ninguna de las soluciones anteriores abordó la causa de este error en mi caso.
Mi salida después de encender
QT_DEBUG_PLUGINS
fue:entonces busqué en Google el
version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))
error y encontré la solución a eso , lo que resolvió el problema.fuente
Recibí este mensaje de error al intentar ejecutar "Stellarium".
Con strace descubrí que faltaba el archivo
libxcb-xinerama.so.0
. Tuve que reinstalarlibxcb-xinerama0
para que funcione:fuente
Intenta instalar el
libqt5x11extras5
paquete con el comando:sudo apt-get install libqt5x11extras5
El nombre puede ser diferente. Puede resolverlo buscando:
sudo apt-cache search qt5 | grep 'X11 extras'
y obtienes el nombre del paquete como resultado:
fuente
Ejecute ldd en el ejecutable de su aplicación para ver cómo resuelve las dependencias de la biblioteca.
Además, esta es una lectura obligada para comprender qué bibliotecas esenciales se necesitan en el caso simple de la aplicación GUI:
http://qt-project.org/doc/qt-5/linux-deployment.html
fuente
En mi ubuntu escribe:
Puede trabajar
fuente
Para aquellos que todavía están atrapados después de probar cualquier otra opción en Internet, puede buscar la ruta exacta desde la que se busca esta notoria
libqxcb.so
, para abrir / cargar laQt
aplicación (VirtualBox-5.2.8
es laQt
aplicación en mi caso), usando el herramienta strace . En mi caso, como estaba construyendoVirtualBox-5.2.8
desde su fuente, estaba buscandolibqxcb.so
en la ubicación a continuación:"...VirtualBox-5.2.8/out/linux.amd64/release/bin/platforms/"
y no en lasdefault
rutas de la biblioteca, laQt
ruta de instalación, etc. Por lo tanto, ninguna de lasldd
comprobaciones y otras soluciones funcionaron. Y la configuraciónQT_DEBUG_PLUGINS=1
tampoco produjo ningún registro adicional.Ejecutando strace en el binario VirtualBox que construí usando Clang / LLVM en Ubuntu 17.10 x86_64:
Esa era mi
hitting-the-nail-on-its-head
momento, y creó elsymlink
de la instalaciónQt5.10.1
'splatforms
directorio se mencionan a continuación:"...Qt5.10.1/Tools/QtCreator/lib/Qt/plugins/platforms/"
en el camino que se busca"...VirtualBox-5.2.8/out/linux.amd64/release/bin/"
. Por lo tanto,VirtualBox-5.2.8
construido desde la fuente en Linux (Ubuntu 17.10 x86_64
) utilizandoClang/LLVM
, finalmente lanzado con éxito !De hecho, otra cosa interesante aquí es que, he construido
VirtualBox-5.2.8
íntegramente conClang/Clang++/LLVM
elUbuntu 17.10 x86_64
después de un esfuerzo importante - paraFreeBSD
, ya hay un puerto para la construcción deVirtualBox
utilizarclang
, pero para Linux, es muy dependiente deGCC
lo que vi y por lo tanto, se tomó un gran esfuerzo para conseguir hasta este punto para poder construir con éxitoVirtualBox-5.2.8
desde su fuente usandoClang/Clang++/LLVM
onUbuntu 17.10 x86_64
for targetLinux/AMD64
(Ubuntu 17.10 x86_64
) y ejecutarlo con éxito después de resolver otros problemas junto con este notoriolibqxcb.so
.Salud.
fuente
Así es como resuelvo algunos problemas cuando estoy ejecutando el emulador en Ubuntu 18.04.
Agregue las siguientes líneas al final del archivo. Instalo mi SDK de Android en
/opt/Android/Sdk
fuente
Ejecutar esto me lo resolvió:
fuente
Parece que pueden faltar varias cosas diferentes detrás de esto. En mi caso (Debian 9.7), QT_DEBUG_PLUGINS = 1 ayudó a rastrear las bibliotecas faltantes, y
$ sudo apt-get install libxcb-render-util0 libxcb-image0 libxcb-keysyms1 libxcb-icccm4
resuelve el problema.
fuente
Cree el archivo qt.conf en su proyecto y agregue:
https://doc.qt.io/qt-5/qt-conf.html
fuente
Copie
plugins/platforms/libqxcb.so
desde suqt
instalación aplatforms/libqxcb.so
en el directorio de su aplicación.fuente