2015-05-04 2 views
2

Когда я пытаюсь скомпилировать cUrl без поддержки SSL, проблем нет. Я использую команду:Компиляция cUrl с OpenSSL на Windows, отсутствует -lcrypto и -lssl

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 

Я скачал Curl v7.40.0 и Win64 OpenSSL v1.0.2a из Shining Light Productions. Из этого я понимаю, что это распределение OpenSSL содержит libeay32.dll, libssl32.dll и ssleay32.dll вместо libcrypto.dll и libssl.dll, которых у меня нет и для которых компилятор ищет. Я также проверил, что у меня есть все три библиотеки DLL в моей папке C:\Windows\System32. Я использую компилятор MinGW-w64, без MSYS, версия 4.9.2.

Что мне нужно сделать, чтобы скомпилировать библиотеку cUrl с поддержкой SSL на Win64? Нужно ли мне модифицировать мою команду компиляции, какой-то файл или я загрузил неправильную версию OpenSSL для начала? Любая помощь действительно ценится.

ответ

1

... Win64 OpenSSL v1.0.2a from Shining Light Productions. From what I understand, this distribution of OpenSSL contains libeay32.dll, libssl32.dll and ssleay32.dll instead of libcrypto.dll and libssl.dll that I don't have and for for which the compiler is looking for.

OpenSSL должен быть доступен в MSYS Developer Tool Kit.

С инструментарием разработчиков установлен, просто запустите:

mingw32-make mingw32-ssl-zlib 

Mingw должен найти их, так как они находятся в хорошо известные места без необходимости OPENSSL_PATH=D:/Programy/MinGW/OpenSSL.

Только bike shedding: вы должны, вероятно, использовать no-zlib (или что бы то ни было) с compression can leak information.

+0

Я установил MSYS вместе с его набором инструментов разработчика и добавил его в свой путь к системной среде. Когда я пытаюсь выполнить команду выше, не указывая «OPENSSL_PATH», появляется ошибка, указывающая, что она не знает местоположение openssl, что странно. – Tilwaen

 Смежные вопросы

  • Нет связанных вопросов^_^