Qt lanza software, windows y linux, y Qt publica un informe de errores en linux

ventanas

1. QT cambia al modo de lanzamiento. Después de la compilación, se genera un archivo ejecutable en el directorio de compilación, como setup.exe, y el archivo se copia en una carpeta separada;
2. Busque QT en el menú de inicio y busque el cmd programa de línea de comando en él, similar "Qt 5.7 64-bit para escritorio (MSVC 2013)", haga clic para ejecutar;
3. Entrada de línea de comando: cd "ruta a setup.exe", por ejemplo "cd C: \ Users \ chuwei \ Desktop \ release ", ejecutar;
4, luego use el comando de la herramienta windeployqt: windeployqt setup.exe, ejecútelo para copiar la biblioteca dependiente al directorio actual.

linux

1. En el modo de lanzamiento, QT compila el archivo ejecutable. Si está configurado, cópielo en una carpeta recién creada;
2. Cree dos archivos nuevos en esta carpeta: setup.sh y pack.sh;
3. En paquete. Agregue el siguiente contenido para sh, hay dos lugares que deben ser reemplazados:

#!/bin/sh  
exe="setup" #你需要发布的程序名称
des="/home/chw/setup" #创建文件夹的位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

4. Agregue el siguiente contenido a setup.sh (no es necesario modificarlo):

#!/bin/sh  
appname=`basename $0 | sed s,\.sh$,,`  
dirname=`dirname $0`  
tmp="${dirname#?}"  
if [ "${dirname%$tmp}" != "/" ]; then  
dirname=$PWD/$dirname  
fi  
LD_LIBRARY_PATH=$dirname  
export LD_LIBRARY_PATH  
$dirname/$appname "$@"

5. La terminal ingresa al directorio, ejecuta el script ./pack.sh, y las bibliotecas dependientes se copiarán automáticamente al directorio actual.
ps: Al publicar de esta manera, las bibliotecas de complementos dependientes no se copian, como plataformas, sqldrivers, formatos de imagen y otras carpetas en la carpeta de complementos del directorio de instalación de qt. Si es necesario, cópielas manualmente.

Liberar resolución de errores en linux

no pudo encontrar o cargar el complemento de plataforma Qt "xcb" en "" Solución:
Falta la carpeta de plataformas, busque /opt/Qt5.10.1/5/10/1/gcc_64/plugins/platforms en el directorio de instalación de QT, y poner plataformas Copie la carpeta a la carpeta donde se encuentra el archivo ejecutable;
en este momento, la carpeta de plataformas ya contiene libqxcb.so, pero la probabilidad aún no está resuelta. Ejecute ldd libqxcb.so, le indica que libQt5XcbQpa.so.5 falta y el archivo se encuentra en el sistema linux original. El archivo es un archivo de enlace, busque el archivo original, cópielo en la carpeta del programa ejecutable y luego cree un enlace, ln -s [archivo original] [libQt5XcbQpa. so.5];
después de eso, puede indicar que falta libQt5DBus.so.5, y el mismo método anterior para resolver;
pit ps: ¿Dónde puedo encontrar libQt5XcbQpa.so.5? / usr / lib / x86_64-linux-gnu y opt / Qt5.10.1 / 5.10.1 / gcc_64 / lib tienen archivos con el mismo nombre. Recuerde usar el siguiente directorio de instalación de Qt y use el directorio lib del sistema anterior para hacer lo que sea quieres mal.

Indicar que no se pueden encontrar libQt5Core.so.5, libQt5Widgets.so.5, libQt5Gui.so.5. Solución:
estos archivos se copiaron en el directorio de archivos ejecutables cuando se publicaron, pero se informará de este error, lo que sugiere que la ruta de búsqueda es / usr / lib / x86_64-linux-gnu, no la ruta donde se encuentra el archivo ejecutable;
análisis de la razón: el sistema ubuntu que ejecuta la versión de lanzamiento del software se instala con otras versiones de QT, el archivo libQt5Core.so.5 generado automáticamente por el directorio lib del sistema y el archivo que usamos para el desarrollo La versión de QT es inconsistente. Aunque el archivo tiene el mismo nombre, el software no lo requiere.
Solución: agregue la ruta del archivo ejecutable actual a la biblioteca dinámica de búsqueda archivo de configuración en el modo de exportación Ver Qt llamando a bibliotecas dinámicas en el entorno linux .

El programa Qt no puede mostrar imágenes después del lanzamiento

Excluyendo factores como archivos de configuración, rutas de imágenes de recursos, etc., intente copiar la carpeta plugins \ imageformats en el directorio de instalación de QT en el mismo directorio de nivel del archivo ejecutable. La carpeta imageformats contiene muchos complementos de formato de imagen, como jpeg, etc., y luego en el principal. Agregue la siguiente declaración en cpp:

QApplication::addLibraryPath("./plugins");

Vuelva a compilar y libere.
ps: no me he encontrado con este tipo de problema en Windows. Lo he encontrado en Linux. El mayor peligro es que no informará un error cuando se ejecute, y no hay indicios de falta de bibliotecas.

Icono de la aplicación Qt

Prepare una imagen y conviértala a formato ico en línea. Si se llama mylogo.ico, cópiela en la ruta del archivo ejecutable y agregue la función principal:

#include <QIcon>
QApplication::setWindowIcon(QIcon("./mylogo.ico"));

Este método es común para Windows y Linux.

Supongo que te gusta

Origin blog.csdn.net/weixin_40355471/article/details/111225922
Recomendado
Clasificación