pesa - La aplicación implementada con bibliotecas QT5 no se inicia en Windows 7
qt software (8)
Después de varios días de búsqueda sin progreso, tropezamos con un error QT:
https://bugreports.qt.io/browse/QTBUG-28766
Con QT5, además de las bibliotecas de QT esperadas, msvcr100.dll y msvcp100.dll; resulta que debe enviar su solicitud con:
platforms/qminimal.dll
platforms/qwindows.dll
también. Que se encuentra en la biblioteca local de QT5 install @: / Qt5.0.0 / 5.0.0 / msvc2010 / plugins / platforms Busqué en todas partes, y no pude encontrar esta información en su documentación.
Recientemente hemos estado migrando nuestra aplicación basada en QT en Windows de QT 4.8 a QT 5, y hemos tenido un problema con la implementación. Tenga en cuenta que nuestra aplicación no ha cambiado, solo la hemos creado con el nuevo marco QT5. Con un poco de esfuerzo logramos construirlo con la biblioteca QT5 basada en VS2010; y ejecuté con éxito la aplicación de Qt Creator.
Como hicimos con QT4, hemos incluido un conjunto requerido de bibliotecas QT con el instalador.
En nuestra fase de prueba, cuando instalamos nuestra aplicación QT5 en una máquina limpia; no comenzaría No solo la aplicación no se inició, sino que no generó ningún error.
Ejecutamos la aplicación a través del comprobador de dependencias; y no faltaron dependencias de biblioteca en absoluto.
La mejor opción es usar: windeployqt.exe . Esta herramienta resuelve todas las dependencias de su application.exe.
Los dlls de la plataforma Qt se encuentran en la carpeta "complementos" en "qtbase": C: / Qt / 5.0.0 / qtbase / plugins / platforms
Para mí, ejecutar la aplicación gui independiente "Hello World" (Qt sdk 5.0.1 mingw, Win7 x64). Necesito agregar los siguientes archivos al directorio del programa:
- plataformas / qwindows.dll
- D3DCompiler_43.dll
- icudt49.dll
- icuin49.dll
- icuuc49.dll
- libEGL.dll
- libgcc_s_sjlj-1.dll
- libGLESv2.dll
- libstdc ++ - 6.dll
- libwinpthread-1.dll
- Qt5Core.dll
- Qt5Gui.dll
- Qt5Widgets.dll
La información de implementación completa para Windows está disponible en qt 5.5 doc
Parece que un qt.conf vacío ubicado en el mismo directorio que la aplicación está causando problemas al iniciar una aplicación Qt5 en Windows 7. Intente eliminarlo.
Sí, bien visto. Estaba teniendo los mismos problemas de implementación usando qt 5.0.2.
Del mismo modo, la carpeta de plataformas instaladas con estos dos dlls en la carpeta de aplicaciones, y las implementaciones en vista y win7 ahora funcionan.
Dependency walker no ayuda aquí ya que no notifica qwindows.dll o qminimal.dll como dlls necesarios.
Las plataformas dlls en mi instalación de Qt están en / Qt / 5.0.2 / mingw47_32 / plugins / platforms.
Utilicé una instancia de QMediaPlayer y QMediaPlaylist y mi aplicación ya no se iniciaba, dando el siguiente error: 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.
Después de pasar 4 días tratando de descubrir qué estaba pasando, descubrimos que hay una ruta de acceso codificada en Qt5Core.dll para cargar los complementos, particularmente el archivo wmfengine.dll
. Asegúrese de compilar Qt5Core para no tener esta ruta codificada (: / Qt / 5.5 / msvc2010).
Ruta de acceso Qt5Core.dll
en Qt5Core.dll
falla el complemento wmfengine.dll
para cargar
para el tutorial del bloc de notas, en win7 y qt5.1.1
el despliegue de pasos es:
* change build mode to release, not debug, * build, * create a output folder somewhere e.g. desktop/notepad/ * * copy file to output folder file list: * from "workspace_home/build-notepad-xxx-Release/release" * notepad.exe * from "qt_home/5.1.1/msvc2010/bin" * icudt51.dll * icuin51.dll * icuuc51.dll * libEGL.dll * libGLESv2.dll * Qt5Core.dll * Qt5Gui.dll * Qt5Widgets.dll * * from "qt_home/5.1.1/msvc2010/plugins/platforms" * platforms/ (need to create this sub folder in the output folder) * qwindows.dll * * * * run the .exe file, make sure it works, * * ok *