建立cURL& libcurl与Visual Studio 2010

时间:2010-05-21 18:18:27

标签: visual-studio-2010 curl openssl libcurl zlib

question #197444的帮助下,我成功建立了cURL&来自Windows上的源自Visual Studio 2010 IDE,OpenSSL 1.0.0和zlib 1.2.5中的libcurl。我看到的问题是,目前,如果我使用参数-V运行生成的curl.exe,那么它报告的版本是

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和Open报告的版本。如果实际使用的话,zlib不匹配。关于如何解决这个问题的任何想法?

P.S。是否有可以编译成libcurl的可选组件的明确列表以及要使用的选项/预处理器指令? (例如SSPI,libidn,......?)

2 个答案:

答案 0 :(得分:2)

我快速浏览了curl源代码,它从DLL中动态获取这些版本号,而不是来自任何静态源。那些是实际加载到curl进程中的库的版本,而不是用于构建curl源的库的版本。您可能在系统上有这些库的旧版本,这些库将由卷曲过程加载。

答案 1 :(得分:1)

我使用此批处理文件从命令行构建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