"No se pudo cargar el complemento de la plataforma" xcb "" mientras se iniciaba la aplicación qt5 en Linux sin qt instalado


Answers

Como se publicó anteriormente, debe asegurarse de instalar los complementos de la plataforma cuando implemente su aplicación. Dependiendo de cómo quiera implementar las cosas, hay dos métodos para decirle a su aplicación dónde están los complementos de la plataforma (por ejemplo, plataformas / complementos / libqxcb.so) en tiempo de ejecución, lo cual puede funcionar para usted.

El primero es exportar la ruta al directorio a través de la variable QT_QPA_PLATFORM_PLUGIN_PATH.

QT_QPA_PLATFORM_PLUGIN_PATH=path/to/plugins ./my_qt_app

o

export QT_QPA_PLATFORM_PLUGIN_PATH=path/to/plugins
./my_qt_app

La otra opción, que prefiero es crear un archivo qt.conf en el mismo directorio que tu ejecutable. El contenido del cual sería:

[Paths]
Plugins=/path/to/plugins

Puede encontrar más información al respecto here y al usar qt.conf

Question

Escribí una aplicación para Linux que usa Qt5.

Pero cuando intento lanzarlo en Linux sin Qt SDK instalado, el resultado en la consola es:

Error al cargar el complemento de la plataforma "xcb". Las plataformas disponibles son:

¿Cómo puedo arreglar esto? ¿Puede ser que necesite 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 ...

ACTUALIZACIÓN: cuando creo en la carpeta de aplicaciones "plataformas" con el archivo libqxcb.so , la aplicación todavía no se inicia, pero el mensaje de error cambia:

Error al cargar el complemento de la plataforma "xcb". Las plataformas disponibles son:

xcb

¿Cómo puede pasar esto? ¿Cómo puede estar disponible el complemento de la plataforma pero no se puede cargar?




Intenté las partes principales de cada respuesta, sin éxito. Lo que finalmente lo solucionó fue exportar las siguientes variables de entorno:

LD_LIBRARY_PATH=/usr/local/lib:~/Qt/5.9.1/gcc_64/lib
QT_QPA_PLATFORM_PLUGIN_PATH=~/Qt/5.9.1/gcc_64/plugins/ 



Vincularé todas las cosas de Qt de forma estática a las versiones genéricas de Linux de mis proyectos de código abierto. Hace la vida un poco más fácil. Solo necesita crear versiones estáticas de las bibliotecas Qt primero. Por supuesto, esto no se puede aplicar al software de fuente cerrada debido a problemas de licencia. El despliegue de aplicaciones Qt5 en Linux es actualmente un poco problemático, porque Ubuntu 12.04, por ejemplo, no tiene bibliotecas Qt5 en los repositorios de paquetes.







Me enfrenté al mismo problema cuando después de instalar Viber. Tenía todas las bibliotecas de qt requeridas en /opt/viber/plugins/ . Comprobé las dependencias de /opt/viber/plugins/platforms/libqxcb.so y encontré las dependencias faltantes. Eran libxcb-render.so.0 , libxcb-image.so.0 , libxcb-icccm.so.4 , libxcb-xkb.so.1 Así que resolví mi problema instalando paquetes faltantes con estas bibliotecas:

apt-get install libxcb-xkb1 libxcb-icccm4 libxcb-image0 libxcb-render-util0




Related



Tags

linux linux   qt qt   xcb