本文参考http://blog.csdn.net/fragmentalice/article/details/39430293
特此感谢。
公司项目中用到几个http get请求,用的libcurl开源库。
当新需求接入第三方接口的时候,需要改成支持https,发现以前的libcurl库并不支持。
所以要重新编译一个。
具体编译环境如下:
硬件:
CPU:Intel Core(TM) i3-3250 CPU @ 3.00GHz
RAM:4GB (3.41GB可用)
GPU:板载集成显卡
软件:
Windows 7 SP1 32 bits
Visual Studio 2010

而libcurl发送https请求,依赖于OpenSSL和zlib。
所以先编译这两个。过程如下:
1. 首先编译OpenSSL。
a. 使用工具ActivePerl
http://www.activestate.com/activeperl/downloads
根据自己的电脑环境 选择 Version 5.22.0.2200 Windows x86平台
ActivePerl-5.22.0.2200-MSWin32-x86-64int-299195.msi 直接安装,默认配置,下一步即可。
注意安装目录是C:\Perl\
安装完成后,DOS命令行中并没有perl命令。因为环境变量并未立刻生效,需要注销登录。或者:
找到perl.exe,发现在C:\Perl\bin\perl.exe
在环境变量中,添加用户变量 变量名PERL 变量值C:\Perl\site\bin;
确定后,打开DOS命令行输入set PERL=C:\Perl\site\bin
关闭DOS命令窗口,再重新打开一个,发现perl已经可用了。
 

b. 官网下载源代码。
http://www.openssl.org/source/ 下载 1.0.2e 这个版本修复了Heartbleed漏洞。
https://www.openssl.org/source/openssl-1.0.2e.tar.gz
(不用最新的 openssl-fips-2.0.10 是因为这个我尝试过,编译失败。时间不允许去追究具体的原因。)
c. 编译过程

perl Configure VC-WIN32 no-asm --prefix=d:/dev/vs/http/ssllib

ms\do_ms.bat

nmake -f ms\ntdll.mak

nmake -f ms\ntdll.mak test

nmake -f ms\ntdll.mak clean

nmake -f ms\ntdll.mak install

nmake -f ms\ntdll.mak test
// 可以测试有没有编译成功
nmake -f ms\ntdll.mak clean
// 可以清理编译结果

nmake -f ms\ntdll.mak install
// 编译结果保存到指定目录 d:/dev/vs/http/ssllib
生成结果目录如图

注1:nmake 工具在Visual Studio安装目录
"D:\Program Files\Microsoft Visual Studio 10.0\VC\bin\nmake.exe"

注2:本机没有nasm 所以第一句加了参数no-asm。不然nmake -f ms\ntdll.mak会报错error A2070:invalid instruction operands等。

2. 编译zlib
a. 官网下载最新版本zlib源代码
http://www.zlib.net/ zlib 1.2.8
http://zlib.net/zlib-1.2.8.tar.gz
b. 使用Visual Studio 2010 直接打开 zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln 运行即可。
或者在zlib根目录下 命令行执行
nmake -f win32/Makefile.msc

3. 编译libcurl
a. 官网下载libcurl源代码
http://curl.haxx.se/download.html 最新 Version 7.46.0
http://curl.haxx.se/download/curl-7.46.0.tar.bz2
b. 根据源代码根目录下winbuild目录下BUILD.WINDOWS.txt的提示
在源代码同级的目录下建立deps文件夹
此时的目录结构如下图
D:\dev\vs\http\
|__curl-src
|    |_winbuild
|
|__deps
  |_ lib
  |_ include
  |_ bin
将D:\dev\vs\http\ssllib\include下的openssl夹拷贝到D:\dev\vs\http\deps\include\目录下;
将zlib源码根目录下的zconf.h、zlib.h和zutil.h拷贝到D:\dev\vs\http\deps\include目录下。
将D:\dev\vs\http\ssllib\lib目录下的libeay32.lib和ssleay.lib拷贝到D:\dev\vs\http\deps\lib目录下;
将zlib源码根目录下的zlib.lib拷贝到D:\dev\vs\http\deps\lib目录下。
c. 解压后
命令行进入源代码根目录下 winbuild 目录
nmake /f Makefile.vc mode=static WITH_SSL=dll WITH_ZLIB=dll DEBUG=yes
其他参数可以根据BUILD.WINDOWS.txt调整
生成文件在D:\dev\vs\http\curl-7.46.0\builds\下
如libcurl-vc-x86-debug-static-ssl-dll-zlib-dll-ipv6-sspi

4. 最后
验证代码,我是用
http://blog.csdn.net/sunflover454/article/details/49030803
特此感谢

windows下编译支持https的libcurl的更多相关文章

  1. Ubuntu+NDK编译支持HTTPS的libcurl

    参考文章:1.NDK环境配置 http://blog.csdn.net/smfwuxiao/article/details/65877092.libcurl的配置修改 http://piggyq.co ...

  2. windows Apache 环境下配置支持HTTPS的SSL证书

    windows Apache 环境下配置支持HTTPS的SSL证书 1.准备工作 1)在设置Apache + SSL之前, 需要做: 安装Apache, 下载安装Apache时请下载带有SSL版本的A ...

  3. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  4. Windows下编译安装 FFmpeg

    在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在wind ...

  5. windows下编译leveldb

    前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...

  6. Windows下编译OpenSSL(使用VS2013)

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  7. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  8. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  9. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

随机推荐

  1. makefile使用

    linux make手册:http://www.gnu.org/software/make/manual/make.html 一篇文章: 假设我们有一个程序由5个文件组成,源代码如下:/*main.c ...

  2. POJ 1808 Quadratic Residues(平方剩余相关)

    题目链接:http://poj.org/problem?id=1808 题意:如下.对于素数p,若存在x使得x^2%p=a,则其值为1.否则为-1.现在给出a.p,计算其值. 思路: 若a为正数则利用 ...

  3. eclipse mingw cpp开发环境

    Eclipse开发c++ 对比:微软的VC++6.0:太老了,对win7兼容不好, 现在微软的Visual Studio:安装包太大,好几个G,装了一堆你不需要的东西,要钱,教 育版申请麻烦 DOS下 ...

  4. bzoj1132

    每次都选最左边的点,然后以这个点为原点 统计和这个点构成的三角形面积和 不难想到极角排序然后由叉积很容易求出 shl ; eps=1e-8; var i,j,k,m,n:longint; x,y:.. ...

  5. Jqgrid入门-使用模态对话框编辑表格数据(三)

            Jqgrid是一个强大的表格插件,它提供了多种方式来编辑数据.这三种方式分别是: Cell Editing——只允许修改某一个单元格内容 Inline Editing——允许在jqGr ...

  6. 建立tracert路由列表的方法

    建立tracert路由列表的方法:电脑屏幕左下方 选择开始选项运行 输入 CMD在DOS命令行下输入:tracert (你的网站域名)   运行结果中如出现了“*     *     *    req ...

  7. 五大主流SQL数据库

    一. 开放性 1. SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的.Windows9X系列产品是偏重于桌面应用,NT server只适合中 ...

  8. HDU 5313 Bipartite Graph (二分图着色,dp)

    题意: Soda有一个n个点m条边的二分图, 他想要通过加边使得这张图变成一个边数最多的完全二分图. 于是他想要知道他最多能够新加多少条边. 注意重边是不允许的. 思路: 先将二分图着色,将每个连通分 ...

  9. UVA 1659 Help Little Laura 帮助小劳拉 (最小费用流,最小循环流)

    (同时也是HDU 2982,UVA的数据多) 题意:平面上有m条有向线段连接了n个点.你从某个点出发顺着有向线段行走,给走过的每条线段涂一种不同的颜色,最后回到起点.你可以多次行走,给多个回路涂色(要 ...

  10. 查看buffer cache命中率

    SQL> select name,value from v$sysstat where name in('db block gets','consistent gets','physical r ...