4

質問#197444の助けを借りて、Visual Studio 2010 IDE、OpenSSL 1.0.0、およびzlib1.2.5内からWindows上のソースからcURLとlibcurlを構築することができました。私が見ている問題は、現時点では、引数を指定して結果の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の両方について報告されたバージョンが一致しないことに注意してください。これを修正する方法について何かアイデアはありますか?

ps libcurlにコンパイルできるオプションのコンポーネントの明確なリストと、使用するオプション/プリプロセッサディレクティブはありますか?(例:SSPI、libidn、...?)

4

2 に答える 2

2

curl のソース コードをざっと見てみると、これらのバージョン番号は静的ソースからではなく、DLL から動的に取得されています。したがって、これらは実際に curl プロセスに読み込まれるライブラリのバージョンであり、curl ソースのビルドに使用されたライブラリのバージョンではありません。システム上に、curl プロセスによってロードされている古いバージョンのライブラリがある可能性があります。

于 2010-05-30T18:51:14.543 に答える
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
于 2010-07-01T21:08:16.680 に答える