由于网上下载的 libcurl 不支持 gzip,只好自己动手编译,期间走了很多弯路,下面是最终成功的记录。

我所使用的环境 Visual Studio 2010 、 Windows 7 64 bit

1 下载文件

1.1 libcurl

下载页面http://curl.haxx.se/download.html

下载地址 http://curl.haxx.se/download/curl-7.26.0.zip

1.2 zlib

下载页面http://sourceforge.net/projects/libpng/files/zlib/

下载地址 http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib125.zip/download

(特别提醒,不要使用1.2.7版编译,使用后发现编译的方法和文件名都不同了)

1.3 openssl

下载页面http://www.openssl.org/source/

下载地址http://www.openssl.org/source/openssl-1.0.0c.tar.gz

(特别提醒,不建议用1.0.1c,虽可编译成功,但无法绕过SSL证书,不知其原因,浪费了我不少时间)

编译openssl还需下载ActivePerl

官方下载http://www.activestate.com/activeperl/downloads

下载地址:http://downloads.activestate.com/ActivePerl/releases/5.16.0.1600/ActivePerl-5.16.0.1600-MSWin32-x86-295879.msi

X64下载地址:http://downloads.activestate.com/ActivePerl/releases/5.16.0.1600/ActivePerl-5.16.0.1600-MSWin32-x64-295879.msi

2 解压及安装文件

2.1 ActivePerl安装,双击直接下一步,默认设置到底。

2.2 zlib openssl libcurl分别解压,他们三个在同一级目录。

例如:D:\User\Dewei\TestCurl\curl-7.26.0、D:\User\Dewei\TestCurl\openssl-1.0.0c、D:\User\Dewei\TestCurl\zlib-1.2.5

3 编译过程

3.1 zlib编译

用vs2010打开zlib-1.2.5/old/visualc6/zlib.dsw,选择DLL_Release编译,把编译生成的zlib-1.2.5/old/visualc6/Win32_DLL_Release/ zlib1.lib 复制到curl-7.26.0/lib目录下,重命名为 zdll.lib (注意必须为此文件名) 。

3.2 openssl编译

打开cmd,cd到openssl-1.0.0c目录下;

运行命令 perl Configure VC-WIN32

再运行   ms\do_ms.bat

再运行 "C:\Program Files (x86)\Microsoft Visual Studio 10.0\vcvars32.bat"

运行命令 nmake -f ms/ntdll.mak

参考资料:openssl-1.0.0c/INSTALL.W32

3.3 编译curl-7.26.0

在curl-7.26.0/lib目录下新建release.bat,输入以下内容

call "C:/Program Files/Microsoft Visual Studio 10.0/VC/bin/vcvars32.bat"
set CFG=release-dll-ssl-dll-zlib-dll
set OPENSSL_PATH=../../openssl-1.0.0c
set ZLIB_PATH=../../zlib-1.2.5
nmake -f Makefile.vc10

保存,然后运行。

等待一会儿,就可以到 curl-7.26.0\lib\release-dll-ssl-dll-zlib-dll 目录下拷文件 libcurl_imp.lib和libcurl.dll 啦!

参考资料:curl-7.26.0/docs/INSTALL

最新文章

  1. 文件IO操作..修改文件的只读属性
  2. Unity3D 之脚本架构,优雅地管理你的代码
  3. js中列表控件排序箭头,在wke中不支持的解决办法
  4. Makefile 一点一滴(一)—— 从最简单的makefile模板写起
  5. Linux基本操作命令之文件查看cat more less tail head
  6. java与微信企业号交互
  7. The type sun.management.ManagementFactory is not visible
  8. MongoDB自定义函数部分 定义及引用
  9. PT20150801隆重开班
  10. 老李分享:《Linux Shell脚本攻略》 要点(三)
  11. vertical-align 和 img属性 和 鼠标样式
  12. Shell脚本小技巧收集
  13. ubuntu 开发板ping通虚拟机挂载nfs服务器
  14. SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置
  15. 设置UIButton中的文字和图片,设置UILabel的文在显示不同颜色
  16. C#窗体打包步骤
  17. 02.Python网络爬虫第二弹《http和https协议》
  18. kmp匹配详解
  19. sublime 将打字内容放在屏幕中央
  20. Puppet软件资源管理

热门文章

  1. bzoj 4028 : [HEOI2015]公约数数列
  2. 丁酉年六月十一ACM模拟赛
  3. PHP 压缩图片质量
  4. python之旅:绑定方法与非绑定方法
  5. striding layers 是什么意思?
  6. mongodb 使用 robo3T 等工具添加用户之后还是 auth failed 的问题
  7. python print end=' ' 不换行
  8. Python【yagmail】模块发邮件
  9. 《剑指offer》面试题32----从1到n整数中1出现的次数
  10. Linux下查看系统版本和make版本