Compilar el driver PostgreSQL PSQL para Qt5 en Windows

1. Introducción

Para mí, PostgreSQL es uno de los mejores gestores de base de datos libres existentes. En este pequeño tutorial verémos como compilar el driver QPSQL para poder conectarnos a este gestor de base de datos desde nuestras aplicaciones Qt5. La compilazión se realizará para la versión distribuida de Qt para Visual Studio 2010.

1.1. Contenido

  1. Desacarga de herramientas escenciales.
  2. Estableciendo las variables de entorno para la compilación.
  3. Instalación del driver QPSQL

2. Requerimientos

  1. Qt 5.0.2 o mayor para VS 2010, lo puedes descargar desde aquí.
  2. Microsoft Visual Studio 2010, puedes utilizar la versión de pago, la Express o la que viene en el Windows SDK 7.
  3. PostgreSQL 8.4 o mayor, debe incluir las cabeceras y bibliotecas de desarrollo. Yo opté por la versión 9.2 en zip, debido a que solo quiero las cabeceras y el enlace *.lib, este comprimido lo puedes descargar desde aquí.

3. Notas

Es muy problable que ya tengas instalado alguna version de Qt para windows en tu computadora. Para este tutorial es necesario que tengas instalado la versión para Visual Studio, aunque no recomiendo el uso de la versión de Qt para MINGW, los pasos a seguir serían casi similares.

4. Instalando cabeceras de desarrollo PostgreSQL

El paquete de PostgreSQL descargado en el enlace anterior solo es un archivo comprimido, lo que debemos hacer es realizar la descompreción con tu herramienta preferida en el disco "C:"

Al terminar la descompresión queda la carpeta c:\psql, ahora simplemente verificamos que las siguientes rutas existan después de la descompresión:

C:\pgsql\lib

C:\pgsql\include

5. Preparando el entorno

Abrimos una consola Qt, para esto nos dirigimos a Inicio->Qt5.0.2->5.0.2->MSVC 2010->Qt 5.0.2 for Desktop(MSVC 210), se nos abrirá una consola, en la misma consola nos indicará :

Remenber to call vcvarsall.bat to complete environment setup!

Ahora debemos de llamar al entorno de compilación de Visual Studio 2010, y esto depende el tipo de instalación que hayas realizado. En caso de haber usado el Windows SDK 7 deberás ejecutar la siguiente línea:

call "C:\Archivos de programa\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd"

En caso de haber utilizado la instalación por el mismo instalador de Visual Studio 2010 (Versión Express o de pago) deberás ejecutar la siguiente línea:

call "C:\Archivos de programa\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"

Para probar que las variables se han establecido correctamente ejecutamos el comando nmake:

nmake

Nos dará la siguiente salida:

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.

En caso de que salga "nmake" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. nos indica que no está establecido todabia el entorno, debemos ejecutar los espacios anteriores correctamente.

Ahora nos dirigmos a la carpeta del driver psql.pro, para esto debemos ejecutar el siguiente comando:

cd C:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\psql

En mi caso la versión de Qt5 que estoy utilizando es la 5.0.2, deberás cambiar la ruta según la versión de Qt5 que tengas. Ahora ejecutaremos el comando qmake:

qmake "INCLUDEPATH+=C:\pgsql\include" "LIBS+=C:\pgsql\lib\libpq.lib" psql.pro

Ahora compilamos:

nmake

Ahora instalamos:

nmake install

Esto creará los archivos qsqlpsql.dll, qsqlpsqld.dll y qsqlpsqld.pdb en C:\Qt\Qt5.0.2\5.0.2\msvc2010_opengl\plugins\sqldrivers. La carpeta dependerá de la versión de Qt que estes usando.

Importante: si deseas distribuir tu software debes también distribuir la biblioteca libpq.dll además de las bibliotecas :

  • ssleay32.dll
  • libintl.dll
  • libeay32.dll

Estas bibliotecas son necesarias para el correcto funcionamiento de libpq, las puedes encontrar en la carpeta bin de la carpeta pgsql.

Sistemas Operativos: