请选择 进入手机版 | 继续访问电脑版
快捷导航
本帖最后由 小亮 于 2018-8-3 13:26 编辑

1.下载curl在curl的官方网站 http://curl.haxx.se/download.html 提供编译好libcurl包,楼主使用curl-7.50.0
2.curl/libcurl 介绍
它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。
curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证,HTTP上传,代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,上载文件断点续传,http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
3.安装OpenSSL开发包
libcurl主要通过SSL(Secure Sockets Layer 安全套接层)和TLS(Transport Layer Security 传输层安全),在传输层对网络连接进行加密。
本文使用OpenSSL使用作为开发库。 也可以使用GnuTLS来支持TLS/SSL协议
libcurl要支持ssh协议可以通过libssh2库进行支持。
下载OpenSsl的包  本文使用 ftp://ftp.openssl.org/snapshot/openssl-1.0.2-stable-SNAP-20180726.tar.gz
用解压工具解压包解压到硬盘上,方便可以解压大C:\libcurl\openssl-1.0.2-stable-SNAP-20180726

4.安装perl程序
openssl编译 Configure的时候,使用到perl程序,在window 下比较流行当仁不让就是 activeperl
http://dl.softmgr.qq.com/original/Development/ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi

5.安装NASM汇编器
编译可以使用vc++编译器来编译OpenSSL,使用汇编器编译有更快的速度,本人使用汇编器是nasm
http://www.nasm.us/pub/nasm/releasebuilds/2.11.05/win32/nasm-2.11.05-installer.exe
安装过程如下图所示:楼主安装目录为C:\nasm(图片安装路径有误)

6.使用汇编器NASM编译OpenSSL库
楼主安装是VS2010开发环境, Debug,Win32,OpenSSL需要使用Visual Studio 命令行方式编译。
1)点击 开始->所有程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010)
2)再打开编译窗口,将上面安装NASM的路径添加到PATH环境变量里  PATH=%PATH%;"C:\nasm",在建立openssl_lib文件夹,作为编译好的程序的输出目录,路径为:C:\openssl_lib
3)进入OpenSSL的工作目录C:\libcurl\openssl-1.0.2-stable-SNAP-20180726

4)配置OpenSSL的安装目录 perl Configure VC-WIN32  --prefix=C:/openssl_lib
输出结果如下

5)生存Makefile 文件 ms\do_nasm
如果不是使用nasm汇编器,这一步使用其他的命令代代替(如ms\do_ms)
输出如下

6)开始编译如果要编译成动态库使用  nmake -f ms\ntdll.mak
如果要编译成静态库使用nmake -f ms\nt.mak
本次编译成静态链接库,所以使用nmake -f ms\nt.mak
7)安装到配置目录
所以使用nmake -f ms\nt.mak install

7.编译curl/libcurl
将下载curl-7.50.0.tar的包,解压到C:\libcurl\curl-7.50.0
进入winbuild目录,通过 nmake /f Makefile.vc 查看下帮助

执行 nmake /f Makefile.vc mode=static VC=10 MACHINE=x86  WITH_DEVEL=C:\openssl_lib WITH_SSL=static ENABLE_SSPI=no ENABLE_IPV6=no DEBUG=yes
命令注释 mode=dll 编译libcurl位动态链接库,如果static 就是把libcurl编译位静态库
     VC=10 代表使用的是VC2010
     WITH_DEVEL=C:\openssl_lib 表示用到第三方开发包的目录,本例上面已经将openssl编译好的开发包,安装到此目录
     WITH_SSL=static ,代表使用libssl库 是静态库
     ENABLE_SSPI=no ENABLE_IPV6=no(禁用SSPI,ipV6功能)
     MACHINE=x86,代表32位的,64位改为x64
     DEBUG=yes,代表debug版,改成“DEBUG=no”,则编译出release版
     稍等片刻就编译成功了。
8.测试 编译后的libcurl是否支持HTTPS协议 ?

进入bin目录,下面测试 www.baidu.com 和支持加密 https://mail.qq.com

经过测试访问加密HTTPS协议传输,和不用加密的HTTP都能成功。。  所以编译libcurl 就算圆满成功 大功告成!!!
9.总结
       libcurl可以通过openssl作为底层库,来支持HTTPS协议,比较麻烦就是编译openssl
       本文使用nasm+acitiveperl的工具去编译openssl,一般都很顺利
       通过仔细阅读libcurl的makefile,还是很容易配置编译libcurl.





参考博客:
http://www.cnblogs.com/openiris/p/3812443.html
https://blog.csdn.net/cym1990/article/details/79851039


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Connecting & Messaging from Any.

共 0 个关于本帖的回复 最后回复于 2018-8-3 13:20

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐板块

精彩推荐

热门排行

明星用户

手机版|小黑屋|AnyMSG ( ©AnyMSG 2009 - 2017 · ICP备16009991号 )

GMT+8, 2019-4-25 12:21