在Windows上VS2005编译CURL,含有zlib,openssl

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

    1. 准备工作

      a. 下载zlib

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

         官网:http://zlib.net/

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

         旧版本:http://www.zlib.net/fossils/

     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,然后输入:

配置运行这个很重要,因为默认的是 /MD

1.优先把找到Makefile.msc的CFLAGS  = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)这一行,改为MD改为MT

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

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


  过了一会儿就编译成功。

 

   2. 编译openssl

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

 

ms\32all.bat

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

 


 

  3. 编译curllib

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

 

set OPENSSL_PATH=..\..\openssl-1.0.1f

set ZLIB_PATH=..\..\zlib-1.2.11


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

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

 

Usage: nmake /f makefile.vc6 CFG= 
where  is one of:
release                      - release static library
release-ssl                  - release static library with ssl
release-zlib                 - release static library with zlib
release-ssl-zlib             - release static library with ssl and zlib
release-ssl-ssh2-zlib        - release static library with ssl, ssh2 and zlib
release-ssl-dll              - release static library with dynamic ssl
release-zlib-dll             - release static library with dynamic zlib
release-ssl-dll-zlib-dll     - release static library with dynamic ssl and dynamic zlib
release-dll                  - release dynamic library
release-dll-ssl-dll          - release dynamic library with dynamic ssl
release-dll-zlib-dll         - release dynamic library with dynamic zlib
release-dll-ssl-dll-zlib-dll - release dynamic library with dynamic ssl and dynamic zlib
debug                        - debug static library
debug-ssl                    - debug static library with ssl
debug-zlib                   - debug static library with zlib
debug-ssl-zlib               - debug static library with ssl and zlib
debug-ssl-ssh2-zlib          - debug static library with ssl, ssh2 and zlib
debug-ssl-dll                - debug static library with dynamic ssl
debug-zlib-dll               - debug static library with dynamic zlib
debug-ssl-dll-zlib-dll       - debug static library with dynamic ssl and dynamic zlib
debug-dll                    - debug dynamic library
debug-dll-ssl-dll            - debug dynamic library with dynamic ssl
debug-dll-zlib-dll           - debug dynamic library with dynamic zlib1
debug-dll-ssl-dll-zlib-dll   - debug dynamic library with dynamic ssl and dynamic zlib
 can be left blank in which case all is assumed
Makefile.vc8(501) : fatal error U1050: please choose a valid configuration "rele
ase-dll-ssl-dll-zlib-dll "
Stop.

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

nmake -f Makefile.vc8 CFG=release-ssl-zlib RTLIBCFG=static

nmake -f Makefile.vc8 CFG=debug-ssl-zlib RTLIBCFG=static

//坑

“RTLIBCFG=static”如果不增加这一句运行时是 “/MD” 

 

你可能感兴趣的:(mfc)