Estoy tratando de hacer un directorio de distribución con mi aplicación. He copiado varias Qt DLL en ese directorio, y el programa parece estar funcionando, con una excepción: no parece encontrar el complemento SQL para SQLite. Copiar qtsqlite.dll al directorio no permite que mi aplicación abra o cree archivos SQLite. ¿Cuál debe ser la estructura directiva o qué archivos adicionales deben copiarse para que el programa pueda leer la base de datos?¿Qué Qt DLL debo copiar para que mi programa sea independiente?
Respuesta
puede usar depends.exe para ver exactamente cuáles son las dependencias de su exe y asegurarse de que estén todas incluidas.
Además, lea this page sobre los complementos de qt. se supone que están en un directorio específico llamado "complementos" y no en el directorio principal con todos los otros archivos DLL.
Lo más probable es que el qtsqlite.dll en sí dependa de las DLL originales de SQLite que probablemente necesite copiar también.
No olvide incluir una copia de licencia LGP en su distribución, así como punteros a los recursos de descarga originales de las bibliotecas que incluyen y sus fuentes. Para seguir con la ley :-)
Gracias al enlace @shoosh proporcionado, pude solucionar el problema. Necesitaba crear el subdirectorio sqldrivers en el directorio de distribución con la biblioteca qsqlite.dll dentro. Pero ese fue solo el primer paso. ¿Tiene alguna sugerencia y recursos para crear un instalador de Windows completo? Soy principalmente un programador de Linux, así que esta área me resulta desconocida.
Tal vez NSIS es un buen punto de partida para usted: http://nsis.sourceforge.net/ Es de código abierto y puede generar secuencias de comandos. Bueno para los programadores de Linux :-D – ypnos
- 1. HTML/CSS: ¿Qué debo usar para definir la altura/ancho de la imagen para que sea independiente de la resolución?
- 2. ¿Qué hace que este código sea "endian independiente"?
- 3. ¿Cómo hacer que maven build platform sea independiente?
- 4. ¿Cómo hacer que DateTime sea independiente de la cultura actual?
- 5. Cómo usar COM dll en mi programa C++
- 6. Copiar directorio usando Qt
- 7. cmake: Cómo hacer un script para copiar los archivos de datos que acompañan a mi programa
- 8. ¿Cómo debo hacer que mi código VBA sea compatible con Windows de 64 bits?
- 9. ¿Debo hacer que mi código python sea menos infalible para mejorar la legibilidad?
- 10. ¿Debo firmar mis archivos DLL?
- 11. ¿Debo crear DLL para la modularidad?
- 12. ¿Por qué STDIN causa que se congele mi programa Perl?
- 13. ¿Cómo hacer que el programa Java sea instalable?
- 14. ¿Qué debo incluir en mi archivo de cabecera para ostream
- 15. ¿Por qué mi programa C++ Builder es mucho más pequeño que mi programa Delphi?
- 16. ¿Cómo debo volver a escribir la ejecución/confirmación de mi base de datos para que sea susceptible de pruebas unitarias?
- 17. ¿Cómo hacer que la aplicación Java sea independiente?
- 18. ¿Qué patrón (s) arquitectónico (s) debo usar para mi RIA?
- 19. Cómo hacer que mi código sea rápido
- 20. ¿Cómo hacer que Visual Studio deje de copiar archivos DLL durante la compilación sin mi permiso?
- 21. ¿Qué debo hacer para que Hash.from_xml() funcione?
- 22. ¿Debo eliminarlo? [Qt]
- 23. Qt - ¿Cómo puedo hacer que una Columna particular de mi QTableView no sea editable?
- 24. ¿Cómo hacer que Boost DLL sea accesible para un archivo ejecutable creado con CMake?
- 25. ¿Puedo modificar mi emulador de Android para que sea rápido?
- 26. ¿Debo copiar un bloque aquí?
- 27. ¿Cómo evitar que un programa Demo Java sea utilizado regularmente por mi cliente?
- 28. Qt: ¿Cómo crear DLL de Windows (que exporta funciones)?
- 29. ¿Hay alguna desventaja para que un idioma sea independiente de la plataforma?
- 30. Implementación de Qt DLL en Windows
De forma predeterminada, la aplicación utilizará su directorio de inicio como el directorio de complementos; debe colocar los controladores en un nombre de directorio de clase base: por ejemplo, dir_aplicación/sqldrivers. – dwj