Сборка cURL и libcurl с помощью Visual Studio 2010 - PullRequest
4 голосов
/ 21 мая 2010

С помощью вопроса # 197444 мне удалось собрать cURL & libcurl из исходного кода в Windows из среды IDE Visual Studio 2010, OpenSSL 1.0.0 и zlib 1.2.5. Проблема, которую я вижу, состоит в том, что в настоящий момент, если я запускаю получившийся файл curl.exe с аргументом -V, то сообщаемая им версия -

curl 7.20.1 (i386-pc-win32) libcurl/7.20.1 OpenSSL/0.9.8d zlib/1.2.3
Protocols: dict file ftp ftps http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS Largefile NTLM SSL libz

Обратите внимание, что версии, указанные как для OpenSSL, так и для zlib не совпадают с тем, что я на самом деле использовал. Есть идеи как это исправить?

p.s. Существует ли четкий список необязательных компонентов, которые можно скомпилировать в libcurl, и какую директиву options / препроцессор использовать? (например, SSPI, libidn, ...?)

Ответы [ 2 ]

2 голосов
/ 30 мая 2010

Я быстро взглянул на исходный код curl, и он получает эти номера версий динамически из DLL, а не из статических источников. Так что это версии библиотек, которые фактически загружаются в процесс curl, а не версии библиотек, которые использовались для создания источника curl. Возможно, в вашей системе есть более старые версии этих библиотек, которые загружаются процессом curl.

1 голос
/ 02 июля 2010

Я собираю cURL и libcurl из командной строки с помощью этого командного файла

@echo off

rem assumes OpenSSL at ../../openssl-1.0.0a
rem assumes zlib at ./../zlib-1.2.5 and built with static runtime libraries (/MT)

echo "Add '#define HAVE_LDAP_SSL 1' to lib\config-win32.h"
notepad lib\config-win32.h
pause

cd lib
nmake -f Makefile.vc9 clean
nmake -f Makefile.vc9 OPENSSL_PATH=../../openssl-1.0.0a ZLIB_PATH=../../zlib-1.2.5    RTLIBCFG=static CFG=release-ssl-zlib

cd ..
cd src
nmake -f Makefile.vc9 clean
nmake -f Makefile.vc9 OPENSSL_PATH=../../openssl-1.0.0a ZLIB_PATH=../../zlib-1.2.5 RTLIBCFG=static CFG=release-ssl-zlib

И это то, что я получаю как версию

curl 7.21.0 (i386-pc-win32) libcurl/7.21.0 OpenSSL/1.0.0a zlib/1.2.5
Protocols: dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS Largefile NTLM SSL libz
...