Issues with compiling libpq 9.1.2 with Visual C++

From: Nordström Thomas <thomas(dot)nordstrom1(at)saabgroup(dot)com>
To: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Issues with compiling libpq 9.1.2 with Visual C++
Date: 2018-09-18 09:24:36
Message-ID: e50405d5e33c48ac85929d78b0ac2fd0@CORPAPPL840.corp.saab.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

OS: Windows 10
Toolset: vc141 (Visual Studio 2017)

I'm having trouble compiling version 9.1.2 of libpq with Visual C++. The reason that I want this particular version is because it's the one included with GDAL version 2.1.3 from GISinternals.com. To be specific, I pulled commit cfd8cf37d20be715e4bb9e382844c79556516824 from GitHub.

What I'm doing is running a powershell script with the following command (of course, I've already run the batch-file included with Visual Studio which sets all the relevant PATH environment variables needed to compile with Visual C++):

nmake /f "win32.mak" DEBUG=1 USE_SSL=1 SSL_INC="$opensslDir\include" SSL_LIB_PATH="$opensslDir\x86\Debug\lib\"

This first complains that there's no libpq-dist.rc. Through some googling I found this page: https://pgolub.wordpress.com/2009/04/13/building-postgresql-client-library-using-borland-c-compiler-bcc-under-winxp/ It says to just rename libpq.rc.in. This at least stops the error message, but it then complains about not finding libpqdll.def. That page said that the author solved it by simply finding an old version of that file, which to me sounds like a bad idea and also I've been unable to do.

If I run the build again it doesn't complain about the lack of libpqdll.def and claims that all Win32 files have been built. The static lib *seems* to have been built correctly, but the libpq.dll is 0 kB and there's no libpqdll.lib, so it clearly fails.

I'm *guessing* that both libpq-dist.rc and libpqdll.def would have been generated by running .\configure. However, when I try doing that it only looks for gcc and cc, but not cl.exe, so it gives the error that there's "no acceptable C compiler found in $PATH". I've found through Googling around that a lot of other people have .\configure scripts that look for cl.exe as well.
I'm running .\configure like this, btw:

sh .\configure

"sh" is Git Bash.

So,
How do I get libpq-dist.rc and libpqdll.def? (Through .\configure?)
If I have to use .\configure, how do I get it to look for cl.exe?

Thank you.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Job 2018-09-18 10:03:07 Max open files
Previous Message Fabio Pardi 2018-09-18 08:25:12 Re: Pgbouncer and postgres