Проблемы с компиляцией libpq 9.1.2 с помощью Visual C ++ - PullRequest
0 голосов
/ 18 сентября 2018

ОС: Windows 10
Набор инструментов: vc141 (Visual Studio 2017)

У меня проблемы с компиляцией версии 9.1.2 libpq с Visual C ++.Причина, по которой я хочу именно эту версию, заключается в том, что она включена в GDAL версии 2.1.3 от GISinternals.com.Если быть точным, я извлек коммит cfd8cf37d20be715e4bb9e382844c79556516824 из проекта postgres на GitHub.

Я запускаю скрипт powershell с помощью следующей команды (конечно, я уже запустил пакетный файлвходит в состав Visual Studio, которая устанавливает все соответствующие переменные среды PATH, необходимые для компиляции с Visual C ++):

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 кБ и нет 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?

Спасибо.

...