您的位置:首页 > 理论基础 > 计算机网络

编译Curl支持https

2018-02-11 10:28 357 查看
参考:
 http://blog.csdn.net/liang19890820/article/details/51658574 http://www.cnblogs.com/openiris/p/3812443.html 目的:编译libcurl支持https。
说明:
1.编译libcurl不仅需要curl包也需要ssl库的支持,所以在编译libcurl的库之前先编译openssl库。
2.我其实就是个搬运工,以及合成,把两个博主的方法结合运用了一下

注意:openssl库如果是编译成静态库和编译成动态库时,编译curl库时使用的命令稍微有点区别,需要配置ssl库的参数,如果是动态库使用dll,如果是静态库使用static。
环境:
1.需要有VS(版本多少都可以,只是编译命令中VCXX稍微有些不同,VS2010是VC10,VS2015是VC14).
2.ActivePerl
下载地址:http://www.activestate.com/activeperl/downloads 
我下载的是:ActivePerl-5.26.0.2600-MSWin32-x64-403866.exe
注意:Windows系统版本
3. 下载并安装 Nasm 汇编器,并将 D:\Program Files\NASM 添加到系统环境变量 Path 中。 
下载地址:http://www.nasm.us/ 
我下载的是:nasm-2.13.01-installer-x64.exe
注意:Windows系统版本
环境变量设置参考:
怎么设置环境变量_百度经验  https://jingyan.baidu.com/article/6079ad0e6fabf028ff86db3a.html
安装包下载:
OpenSSL的下载地址: http://www.openssl.org/  我下载的是:openssl-1.0.2m.tar.gz
curl的下载地址: https://curl.haxx.se/download/ 我下载的是: https://curl.haxx.se/download/curl-7.30.0.tar.gz 注意:其中所有的文件放置位置都可以自行修改。

编译步骤
1. 把openssl和curl包都解压到F盘
2. 先编译openssl打开命令提示符,定位至 F:\openssl-1.0.2m
3. 输入 perl Configure VC-WIN32 --prefix=c:\openssl_lib(将其安装到 C:\ openssl_lib)
4. 在当前目录下输入 ms\do_nasm
5. 在自己电脑上找到VS快捷键,右键单击查看属性,将属性目标中的VS路径复制出来,去掉Common7\IDE\devenv.exe然后在后面加上VC\bin,将命令提示符定位至 F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin, 然后输入vcvars32.bat:
注意:
如果没有这一步,会提示 nmake 不是内部或外部命令等一系列错误。
如果以后再次编译使用nmake命令时,也可以先运行这一步。
6. 再次将命令提示符定位至 F:\openssl-1.0.2m,
如果要编译成动态库输入  nmake -f ms\ntdll.mak
如果要编译成静态库输入nmake -f ms\nt.mak
本次编译成静态链接库,所以输入nmake -f ms\nt.mak
7. 安装到配置目录 如果是静态库 输入nmake -f ms\nt.mak install ,
动态库输入 nmake -f ms\ntdll.mak install
8. 这样openssl就编译完成
9. 开始编译curl,进入到F:\curl-7.37.0\进入winbuild目录,如果想看一下编译命令,通过 nmake /f Makefile.vc 查看帮助
10. 如果openssl是静态库 执行 nmake /f Makefile.vc mode=dll VC=10 WITH_DEVEL=C:\openssl_lib WITH_SSL=static ENABLE_SSPI=no ENABLE_IPV6=no
如果openssl是动态库 执行 nmake /f Makefile.vc mode=dll VC=10 WITH_DEVEL=C:\openssl_lib WITH_SSL=dll ENABLE_SSPI=no ENABLE_IPV6=no
  命令注释
 mode=dll 编译libcurl位动态链接库,如果static 就是把libcurl编译位静态库 
VC=10 代表使用的是VC2010
WITH_DEVEL=C:\openssl_lib 表示用到第三方开发包的目录,本例上面已经将openssl编译好的开发包,安装到此目录
WITH_SSL=static ,代表使用libssl库 是静态库,如果是动态库使用dll
 ENABLE_SSPI=no ENABLE_IPV6=no(禁用SSPI,ipV6功能)
稍等片刻就编译成功了。
10.测试刚刚编译出来的库是否支持https
如果是使用的openssl静态库直接进行下面的测试,定位到F:\curl-7.37.0\builds\libcurl-vc10-x86-release-dll-ssl-static-spnego\bin
然后输入命令:curl.exe https://mail.qq.com  -k
如果使用的是openssl动态库需要把libeay32.dll和ssleay32.dll都拷贝到curl.exe同级文件夹下。
定位到F:\curl-7.37.0\builds\libcurl-vc10-x86-release-dll-ssl-dll-spnego\bin
然后输入命令:curl.exe https://mail.qq.com  -k

如果不支持会出现不支持https的提示。
支持则是下面的现象:
 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: