Compiling psqlODBC on Windows

This page describes how to build the PostgreSQL ODBC Driver on Win32 platforms. Microsoft Visual C++ version 6.0 or Microsoft Visual C++ 2005 Edition. Other compilers may work but have not been formally tested. psqlODBC may be built either in the VC++ IDE or from the command line:

IDE Method

A Microsoft Visual Studio project file (and workspace) is included in the source tree.

psqlodbc.dsp can be used with Microsoft Visual C++ 6.0.

psqlodbc.proj and psqlodbc.sln can be used with Microsoft Visual C++ 2005 Edition (including the Express edition which can be downloaded free of charge from http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx)

Preparation before the build:

  1. The Windows distribution of PostgreSQL will install the required headers and libraries into C:\Program Files\PostgreSQL\9.1
  2. OpenSSL should be installed into C:\OpenSSL (OpenSSL binaries can be downloaded from http://www.slproweb.com/products/Win32OpenSSL.html)

If you want to change the installation arrangement, it is necessary to edit the project settings.

Note:

The default build settings will create the following driver:

  1. UNICODE support.
  2. libpq and SSL equipped are supported.
  3. Kerberos are supported peculiar by psqlODBC.
  4. ODBCVER is 0x0351.
  5. The driver filename is "psqlodbc35w.dll".

Command Line Method

Build method:

  1. Use NMAKE.exe to build the dll for the 32bit environment.

    C:\psqlodbc\> nmake /f win32.mak CFG=Release ALL

    Possible configurations are Release and Debug.
    Possible build types are ALL or CLEAN.
     
  2. Use NMAKE.exe to build the dll for the 64bit environment.

    C:\psqlodbc\> nmake /f win64.mak CFG=Release ALL

    Possible configurations are Release and Debug.
    Possible build types are ALL or CLEAN.

Note:

The following build options may be used:

Valiable Values
CFG Release(default), or Debug
PG_INC $(PROGRAMFILES)\PostgreSQL\9.1\include
PG_LIB $(PROGRAMFILES)\PostgreSQL\9.1\lib\ms
SSL_INC C:\OpenSSL\include
SSL_LIB C:\OpenSSL\lib\VC
LINKMT MT
ANSI_VERSION No (at the Yes, output dll name to psqlodbc30a.dll)
MSDTC Yes (but VC++ 6.0 default is no)
USE_LIBPQ No (libpq is required)
USE_SSPI Yes (secur32 and crypt32 is required)
USE_GSS Yes (use gssapi required, this option is effective at 64bit now)

  1. UNICODE is default (psqlodbc35w.dll), unless ANSI_VERSION isselected (psqlodbc30a.dll)
  2. libpq.dll is used supported.
  3. SSL and Kerberos are original equipment.
  4. ODBCVER becomes 0x351 when UNICODE is selected, or becomes 0x0300 with ANSI_VERSION == Yes.
  5. If MSDTC == Yes, "pgxalib.dll" is created.
  6. In the MSDTC mode, ANSI_VERSION also creates "pgenlista.dll". or UNICODE creates "pgenlist.dll".
.