使用Visual C ++编译libpq 9.1.2的问题

时间:2018-09-18 11:54:16

标签: visual-c++ postgresql-9.1 configure libpq

操作系统:Windows 10
工具集:vc141(Visual Studio 2017)

我无法使用Visual C ++编译libpq的9.1.2版本。我想要这个特定版本的原因是因为它是GISinternals.com的GDAL 2.1.3版本附带的版本。具体来说,我从GitHub上的postgres项目中提取了提交cfd8cf37d20be715e4bb9e382844c79556516824

我正在使用以下命令运行Powershell脚本(当然,我已经运行了Visual Studio附带的批处理文件,该文件设置了使用Visual C ++编译所需的所有相关PATH环境变量):

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

这首先抱怨没有libpq-dist.rc。通过一些谷歌搜索,我找到了以下页面:https://pgolub.wordpress.com/2009/04/13/building-postgresql-client-library-using-borland-c-compiler-bcc-under-winxp/它说只是重命名libpq.rc.in。这至少会停止错误消息,但随后会抱怨找不到libpqdll.def。该页面说作者通过简单地找到该文件的旧版本就解决了这个问题,对我来说这听起来是个坏主意,而且我也做不到。

如果我再次运行该构建,它不会抱怨缺少libpqdll.def,并声称已构建了所有Win32文件。静态库似乎已正确构建,但是libpq.dll为0 kB,没有libpqdll.lib,因此显然失败。

猜测 libpq-dist.rclibpqdll.def都是通过运行.\configure生成的。但是,当我尝试这样做时,它只会查找gcc和cc,而不是cl.exe,因此会出现错误no acceptable C compiler found in $PATH。通过Googling,我发现许多其他人也有.\configure脚本也在寻找cl.exe。
我正在这样运行.\configure,顺便说一句:

sh .\configure

“ sh”是Git Bash。

所以,
我如何获得libpq-dist.rc和? libpqdll.def? (通过.\configure吗?)
如果必须使用.\configure,该如何查找cl.exe?

谢谢。

0 个答案:

没有答案