最近,从网上下载了一个curl库,使用时各种报错,都无法启动,于是干脆就直接自己编译了。

1. 准备工作

a. 下载zlib

zlib可以使得HTTP请求支持gzip压缩,其地址如下:

官网:http://zlib.net/

下载地址:http://zlib.net/zlib-1.2.8.tar.gz

b. 下载openssl

opensll使用与支持SSL,例如HTTPS的请求。

官网:http://www.openssl.org

下载地址:http://www.openssl.org/source/openssl-1.0.1f.tar.gz

c. 下载curl

官网:http://curl.haxx.se

下载地址:在http://curl.haxx.se/download.html选择你所想要的版本,我这儿选用最新的7.35.0版本 [http://curl.haxx.se/download/curl-7.35.0.tar.gz]

d. 下载ActivePerl

官网:http://www.activestate.com/activeperl/downloads

请注意根据自己的系统版本【32,64】选择不同的安装包【链接失效时用迅雷可下载】

下载地址: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

编译方法:

a. 安装activePerl

直接双击安装,用默认设置就可以了。

b. 解压所有的源码文件,全部放在一个目录下,比如我是房子c:\curl目录下,目录结构如下:

c. 编译zlib

从开始菜单,选择Microsoft Visual Studio 2005 > Visual Studio Tools > Visual Studio 2005 Command Prompt,如下图:

之后会弹出一个CMD窗口,切换到zlib的目录下C:\curl\zlibxxx,然后输入:

  1. nmake -f win32/Makefile.msc OBJA="inffast.obj"


  过了一会儿就编译成功。

2. 编译openssl

将当前目录切换到C:\curl\openssl-1.0.1f,如何输入下面执行下面的命令:

ps:请不要直接打开cmd用vs自带的命令行工具

  1. ms\32all.bat

然后就开始了漫长的编译,我这等了15分钟才编译好= =$

3. 编译curllib

将当前目录切换到curl的的目录下C:\curl\curl-7.35.0\lib,然后依次输入一下的命令:

  1. set OPENSSL_PATH=..\..\openssl-1.0.1f
  2. set ZLIB_PATH=..\..\zlib-1.2.8
  3. nmake -f Makefile.vc8  CFG=release-dll-zlib-dll

注意 Makefile.vc6是VC6.0的版本,VC8是VC2005,VC9是VS2008,依次类推吧。

CFG是配置编译结果选项,其具体内容如下:

  1. Usage: nmake /f makefile.vc6 CFG=<config> <target>
  2. where <config> is one of:
  3. release                      - release static library
  4. release-ssl                  - release static library with ssl
  5. release-zlib                 - release static library with zlib
  6. release-ssl-zlib             - release static library with ssl and zlib
  7. release-ssl-ssh2-zlib        - release static library with ssl, ssh2 and zlib
  8. release-ssl-dll              - release static library with dynamic ssl
  9. release-zlib-dll             - release static library with dynamic zlib
  10. release-ssl-dll-zlib-dll     - release static library with dynamic ssl and dynamic zlib
  11. release-dll                  - release dynamic library
  12. release-dll-ssl-dll          - release dynamic library with dynamic ssl
  13. release-dll-zlib-dll         - release dynamic library with dynamic zlib
  14. release-dll-ssl-dll-zlib-dll - release dynamic library with dynamic ssl and dynamic zlib
  15. debug                        - debug static library
  16. debug-ssl                    - debug static library with ssl
  17. debug-zlib                   - debug static library with zlib
  18. debug-ssl-zlib               - debug static library with ssl and zlib
  19. debug-ssl-ssh2-zlib          - debug static library with ssl, ssh2 and zlib
  20. debug-ssl-dll                - debug static library with dynamic ssl
  21. debug-zlib-dll               - debug static library with dynamic zlib
  22. debug-ssl-dll-zlib-dll       - debug static library with dynamic ssl and dynamic zlib
  23. debug-dll                    - debug dynamic library
  24. debug-dll-ssl-dll            - debug dynamic library with dynamic ssl
  25. debug-dll-zlib-dll           - debug dynamic library with dynamic zlib1
  26. debug-dll-ssl-dll-zlib-dll   - debug dynamic library with dynamic ssl and dynamic zlib
  27. <target> can be left blank in which case all is assumed
  28. Makefile.vc8(501) : fatal error U1050: please choose a valid configuration "rele
  29. ase-dll-ssl-dll-zlib-dll "
  30. Stop.

大家可以根据自己的需要编译不同的DLL和lib,我就选择编译了两个静态库:

  1. nmake -f Makefile.vc8  CFG=release-ssl-zlib
  2. nmake -f Makefile.vc8  CFG=debug-ssl-zlib

然后就是开始华丽丽的刷屏等待啦~~~

过了几分钟之后,就编译好了,将C:\curl\curl-7.35.0\lib\会有debug-ssl-zlib和release-ssl-zlib目录,拷贝到VS的工程目下,然后配置一下就可以使用了。

在Windows上编译最新的CURL,含有zlib,openssl的更多相关文章

  1. (转)windows下编译最新的x264

    二:<windows下编译最新的x264> X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的.x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的( ...

  2. 在windows上编译wireshark源代码

    终于在windows上成功编译了wireshark源代码,个中酸辛,都是泪..只能说要多试! windows上编译wireshark共用到三个东西:wireshark源代码.python.cygwin ...

  3. 在windows 上编译部署Rap2

    在windows 上编译部署Rap2 引言 安装需要的环境 安装后端站点 创建数据库 在全局安装pm2 和 typescript 配置mysql,redis 数据库链接配置 初始化 编译 初始化数据库 ...

  4. 在Mac/Linux/Windows上编译corefx遇到的问题及解决方法

    这两天尝试在Mac/Linux/Windows三大平台上编译.NET跨平台三驾马车(coreclr/corefx/dnx)之一的corefx(.NET Core Framework),结果三个平台的编 ...

  5. [ZZ] 在windows上编译Mesa3d opengl32库

    在windows上编译Mesa3d opengl32库 cheungmine http://blog.csdn.net/ubuntu64fan/article/details/8061475 Mesa ...

  6. 利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl

    利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl 首先mingw的环境搭建,务必遵循下文: http://blog.csdn.net/ubuntu64fan/ar ...

  7. 在windows上编译MatConvNet

    有个BT的要求,在windows上使用MatConvNet,并且需要支持GPU. 费了些力气,记录一下过程(暂不支持vl_imreadjpeg函数) 在这里下载MatConvNet,机器配置vs201 ...

  8. 如何在 Windows上编译Objective-C

    Objective-C现在几乎已经变成了苹果的专利了,可以直接在苹果的Xcode上编译Objective-C程序,但是在Windows平台下的编译工具就寥寥无几了,本身这种语言用的人就不是很多.今天在 ...

  9. Windows 上编译 corefx 源码生成 Linux 上可用的 System.Data.SqlClient.dll

    最近在排查一个奇怪的 EF Core 查询速度慢的问题,需要在 corefx 2.2.3 的 System.Data.SqlClient 源码中打点. github 上签出 corefx 的源代码,运 ...

随机推荐

  1. java中时间比较

    package com.newtouch.test; import java.text.SimpleDateFormat;import java.util.Date; public class Tim ...

  2. socket选项总结(setsocketopt)

    功能描述:        获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项, ...

  3. Texture Filter中的Bilinear、Trilinear以及Anistropic Filtering

    1. 为什么在纹理采样时需要texture filter(纹理过滤)?我们的纹理是要贴到三维图形表面的,而三维图形上的pixel中心和纹理上的texel中心并不一至(pixel不一定对应texture ...

  4. SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中

    最近,电脑重装系统之后,安装了SQL Server 2008.附加数据库文件的时候,发现无法附加,提示版本不对.想起来,原来的数据库版本是SQL Server 2008R2.低版本的数据库管理工具无法 ...

  5. 从宏观到微观理解coding

    宏观思维就是对所做事情的整体有一个清晰认识,并知晓我们追求的目标是什么.在理解了整体之后,我们需要针对自己感兴趣部分做深入的了解,这就是所谓的微观思维.古语"不谋全局者,不足谋一域" ...

  6. matlab 连续读取多个文件

    方法1: 把文件的文件名按一定的规律命名,假如:filename1.txt,filename2.txt,...,fielname100.txt,在读取的时候则可以使用循环: for i = 1:100 ...

  7. 总结A*,Dijkstra,广度优先搜索,深度优先搜索的复杂度比较

    广度优先搜索(BFS) 1.将头结点放入队列Q中 2.while Q!=空 u出队 遍历u的邻接表中的每个节点v 将v插入队列中 当使用无向图的邻接表时,复杂度为O(V^2) 当使用有向图的邻接表时, ...

  8. spark2.0配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  9. 16.10.18学到的Java知识

    1. 突然间发现自己忘了关于自增自减运算符放在变量前后的区别是什么了? 于是乎,我查了资料. 如果只对自变量进行加1或减1的时候,放在前面和后面都是没有区别的. 但是,如果自增自减运算符使用在需要赋值 ...

  10. Error:Protocol family unavailable

    在环境变量添加:_JAVA_OPTIONS 变量值为:-Djava.net.preferIPv4Stack=true 环境变量添加方法链接: http://jingyan.baidu.com/arti ...