操作系统: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.rc
和libpqdll.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?
谢谢。