descargar creator c++ windows qt deployment qt5

c++ - creator - ¿Cómo ejecutar un programa de Qt sin que se instale Qt?



qt creator (6)

He escrito un programa con Qt5.3.1 y lo ejecuto en mi máquina de desarrollo donde funciona bien. Copié todos los archivos .dll necesarios en la carpeta donde está mi .exe. Estos son:

  • Qt5Widgets.dll
  • Qt5Network.dll
  • Qt5Gui.dll
  • Qt5Core.dll
  • icudt51.dll
  • icuin51.dll
  • icuuc51.dll
  • libgcc_s_dw2-1.dll
  • libwinpthread-1.dll
  • libstdc ++ - 6.dll

Ahora quiero ejecutar ese programa en una máquina que no tiene Qt instalado. ¿Cómo puedo hacer eso? No debería ser necesario que los usuarios instalen un IDE solo para usar un programa, ¿verdad?

Detalles de la máquina de desarrollo donde funciona:

  • Windows 8
  • Qt 5.3.1

La plataforma de implementación es:

  • Windows Vista
  • No Qt instalado pero todos los .dlls necesarios están en su lugar

Los errores que obtengo son los primeros:

Esta aplicación no se pudo iniciar porque no pudo encontrar o cargar el complemento de la plataforma Qt "windows". Reinstalar la aplicación podría resolver el problema.

El siguiente mensaje de error es:

Esta aplicación solicitó que el Tiempo de ejecución finalizara de forma inusual. Por favor contáctese con soporte

Entonces el programa falla. Pero si instalo Qt5.3.1, funciona. Entonces tiene algo que ver con los archivos en el directorio c:/Qt


Debe colocar Qt DLL a lo largo de la versión de lanzamiento de su ejecutable. Estos son Qt5Core.dll , Qt5Gui.dll y posiblemente los de otros módulos que haya utilizado. Estos archivos dll están en su directorio Qt instalado en la carpeta bin. También debe colocar LIBGCC_S_DW2-1.DLL , MINGWM10.DLL y LIBSTDC++-6.dll en caso de que esté utilizando MinGW.

Si está utilizando complementos, debe colocar su dll en una carpeta llamada plugins junto a su exe. En caso de utilizar iconos e imágenes, debe enviar sus dlls como qico.dll y qsvg.dll en una carpeta llamada imageformats .


He encontrado este problema también,

En su directorio de Qt, con la versión de Qt adecuada C: / Qt / Qt5.2.1 / 5.2.1 / mingw48_32 / plugins / platforms /

copie qwindows.dll en una nueva carpeta que viva al lado de su ejecutable, de modo que su lista sea

  • Qt5Widgets.dll
  • Qt5Network.dll
  • Qt5Gui.dll
  • Qt5Core.dll
  • icudt51.dll
  • icuin51.dll
  • icuuc51.dll
  • libgcc_s_dw2-1.dll
  • libwinpthread-1.dll
  • libstdc ++ - 6.dll
  • plataformas / qwindows.dll

La respuesta breve es si debe hacer una compilación estática o si necesita redistribuir las DLL de la biblioteca compartida Qt. Si está buscando un tamaño de archivo más pequeño, las compilaciones estáticas a menudo son mejores, pero puede haber implicaciones legales con este enfoque si está usando Qt5 bajo una licencia LGPL . No soy abogado, pero puede leer acerca de las reglas de enlace LGPL en LGPL sección 4.1 .

La respuesta larga es que debería leer la guía general de implementación de Qt5 y la guía de implementación de Qt5 para Windows . Estos entran en bastante detalle.


También debe copiar {QTSDK} / plugins en el directorio donde se encuentra el archivo ejecutable. Luego crea qt.conf en el mismo lugar (con ejecutable) con el siguiente contenido:

[Paths] Plugins=plugins

A continuación, ejecuta tu programa. Hice lo mismo en Linux.


si Qt dlls están allí, deberían funcionar. Supongo que te faltan las bibliotecas / dlls de tiempo de ejecución de tu IDE. Por ejemplo, si está usando Visual Studio 2010 como su IDE, entonces necesita instalar VS2010. El enlace redistribuible x86 / x64 depende de su arquitectura.


This application failed to start because it could not find or load the Qt platform plugin "windows".

Para este problema, debe copiar el complemento {QTSDK}/plugins/platforms/qwindows.dll en {YOUR_EXE_DIR}/platforms/qwindows.dll .