windows平台下libcurl库编译步骤

Posted Jimmy1224

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows平台下libcurl库编译步骤相关的知识,希望对你有一定的参考价值。

关键词:Windows,curl,ssl, visual c++ 2005

  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选择你所想要的版本,
    d. 下载ActivePerl
    官网:http://www.activestate.com/activeperl/downloads
    请注意根据自己的系统版本【32,64】选择不同的安装包

  2. 编译方法:

    a. 安装activePerl
    直接双击安装,用默认设置就可以了。
    b. 解压所有的源码文件,全部放在一个目录下,比如我是c:\\curl目录下,目录结构如下:

    curl
    |-----curl
    |-----openssl
    |-----zlib
    

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

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

    nmake -f win32/Makefile.msc OBJA=“inffast.obj” 过了一会儿就编译成功。

    d. 编译openssl
    将当前目录切换到C:\\curl\\openssl-1.0.1f,如何输入下面执行下面的命令:
    ms\\32all.bat然后就开始了漫长的编译,我这等了15分钟才编译好= =$

    e. 编译curllib
    将当前目录切换到curl的的目录下C:\\curl\\curl-7.35.0\\lib,然后依次输入一下的命令:
    set OPENSSL_PATH=…\\openssl-1.0.1f
    set ZLIB_PATH=…\\zlib-1.2.8
    nmake -f Makefile.vc8 CFG=release-dll-zlib-dll
    注意 Makefile.vc6是VC6.0的版本,VC8是VC2005,VC9是VS2008,依次类推吧。
    编译选项如下:

    Usage: nmake /f makefile.vc6 CFG=<config> <target>
    where <config> 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
    <target> 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
nmake -f Makefile.vc8 CFG=debug-ssl-zlib

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

  1. CURL在windows下的编译使用

    CURL的使用要注意几点:

    3.1 使用CURL的工程依赖加libcurl.lib ws2_32.lib wldap32.lib

    3.2 工程加宏CURL_STATICLIB

    3.3 debug版忽略LIBCMTD.lib,release版忽略LIBCMT.lib

参考资料:

http://blog.sina.com.cn/s/blog_62949ff40102x2wm.html
https://blog.csdn.net/hujkay/article/details/18986153
https://blog.csdn.net/diaoxuesong/article/details/78664663
https://blog.csdn.net/oilcode/article/details/45155101

以上是关于windows平台下libcurl库编译步骤的主要内容,如果未能解决你的问题,请参考以下文章

conan入门(二十三):Windows下MinGW编译libcurl

关于在Windows XP Server 2003下使用libcurl库的一些问题 附编译好的libcurl下载 和使用libcurl访问百度的例子工程

如何在redis中华丽丽地使用lua脚本

Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)

在Linux下使用MinGW静态交叉编译带有zlib的libcurl(包括交叉编译openssl,即--cross-compile-prefix=i686-w64-mingw32- mingw)(代码

华丽丽的落幕