2009-03-05 17 views
5

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

4

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.

+0

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

2

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 :-)

2

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.

+0

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

Cuestiones relacionadas