2

SSL をサポートしないで cUrl をコンパイルしようとしても、問題はありません。私は次のようなコマンドを使用します:

mingw32-make mingw32

cUrl INSTALL ファイルの指示に従って SSL をサポートし、この方法でコンパイルしようとしました。

mingw32-make mingw32-ssl-zlib OPENSSL_PATH=D:/Programy/MinGW/OpenSSL ZLIB_PATH=D:/Programy/MinGW/zlib

しかし、次のエラーが発生するため、機能しません。

 D:\Programy\MinGW\cUrl>mingw32-make mingw32-ssl-zlib OPENSSL_PATH=D:/Programy/Mi
nGW/OpenSSL ZLIB_PATH=D:/Programy/MinGW/zlib
mingw32-make -C lib -f Makefile.m32 CFG=mingw32-ssl-zlib
mingw32-make[1]: Entering directory 'D:/Programy/MinGW/cUrl/lib'
gcc -s -shared -o libcurl.dll \
  -Wl,--output-def,libcurl.def,--out-implib,libcurldll.a \
  file.o timeval.o base64.o hostip.o progress.o formdata.o cookie.o http.o sendf
.o ftp.o url.o dict.o if2ip.o speedcheck.o ldap.o version.o getenv.o escape.o mp
rintf.o telnet.o netrc.o getinfo.o transfer.o strequal.o easy.o security.o curl_
fnmatch.o fileinfo.o ftplistparser.o wildcard.o krb5.o memdebug.o http_chunks.o
strtok.o connect.o llist.o hash.o multi.o content_encoding.o share.o http_digest
.o md4.o md5.o http_negotiate.o inet_pton.o strtoofft.o strerror.o amigaos.o hos
tasyn.o hostip4.o hostip6.o hostsyn.o inet_ntop.o parsedate.o select.o tftp.o sp
lay.o strdup.o socks.o ssh.o rawstr.o curl_addrinfo.o socks_gssapi.o socks_sspi.
o curl_sspi.o slist.o nonblock.o curl_memrchr.o imap.o pop3.o smtp.o pingpong.o
rtsp.o curl_threads.o warnless.o hmac.o curl_rtmp.o openldap.o curl_gethostname.
o gopher.o idn_win32.o http_negotiate_sspi.o http_proxy.o non-ascii.o asyn-ares.
o asyn-thread.o curl_gssapi.o curl_ntlm.o curl_ntlm_wb.o curl_ntlm_core.o curl_n
tlm_msgs.o curl_sasl.o curl_multibyte.o hostcheck.o bundles.o conncache.o pipeli
ne.o dotdot.o x509asn1.o http2.o curl_sasl_sspi.o smb.o curl_sasl_gssapi.o curl_
endian.o curl_des.o vtls/openssl.o vtls/gtls.o vtls/vtls.o vtls/nss.o vtls/polar
ssl.o vtls/polarssl_threadlock.o vtls/axtls.o vtls/cyassl.o vtls/schannel.o vtls
/darwinssl.o vtls/gskit.o libcurl.res -L"D:/Programy/MinGW/OpenSSL/lib" -lcrypto
 -lssl -L"D:/Programy/MinGW/zlib" -lz -lwldap32 -lws2_32
D:/Programy/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: cannot find -lcrypto
D:/Programy/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: cannot find -lssl
collect2.exe: error: ld returned 1 exit status
Makefile.m32:300: recipe for target 'libcurl.dll' failed
mingw32-make[1]: *** [libcurl.dll] Error 1
mingw32-make[1]: Leaving directory 'D:/Programy/MinGW/cUrl/lib'
makefile:87: recipe for target 'mingw32-ssl-zlib' failed
mingw32-make: *** [mingw32-ssl-zlib] Error 2

Shining Light Productionsから cUrl v7.40.0 と Win64 OpenSSL v1.0.2a をダウンロードしました。私が理解していることから、この OpenSSL のディストリビューションには、コンパイラが探しているものと、私が持っていないandの代わりにlibeay32.dlllibssl32.dllandが含まれています。また、フォルダーに 3 つの dll がすべてあることも確認しました。私は MinGW-w64 コンパイラを使用していますが、MSYS は使用していません。バージョン 4.9.2 です。ssleay32.dlllibcrypto.dlllibssl.dllC:\Windows\System32

Win64 で SSL をサポートする cUrl ライブラリをコンパイルするには、どうすればよいですか? コンパイル コマンドや一部のファイルを変更する必要がありますか?それとも最初に間違ったバージョンの OpenSSL をダウンロードしましたか? どんな助けでも本当に感謝しています。

4

1 に答える 1

1

... Shining Light Productions の Win64 OpenSSL v1.0.2a。私が理解していることから、この OpenSSL のディストリビューションには、私が持っておらず、コンパイラが探している libcrypto.dll と libssl.dll の代わりに、libeay32.dll、libssl32.dll、および ssleay32.dll が含まれています。

OpenSSL はMSYS Developer Tool Kitで利用できるはずです。

開発者ツールキットをインストールしたら、次を実行します。

mingw32-make mingw32-ssl-zlib

それらはよく知られている場所にあるため、Mingw はそれらを見つける必要がありOPENSSL_PATH=D:/Programy/MinGW/OpenSSLます。

ただ自転車を脱ぎ捨てる:圧縮すると情報が漏れる可能性があるため、おそらくno-zlib(またはオプションが何であれ)使用する必要があります。

于 2015-05-06T03:47:01.187 に答える