Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库

时间:2024-10-28 00:07:38

由于之前的工作需要使用libcurl 开源项目库 在各种研究后发现无法使用HTTPS协议

后来经过各种翻阅文档,发现需要OpenSSL支持,这个需要自己下载并自己编译生成 lib 或者 dll

至于OpenSSL 的编译我就不做过多的介绍 直接贴一个安装的教程链接 大家可以参考下

http://www.cnblogs.com/yangyquin/p/5284530.html

Win8-64位安装OpenSSL详细过程

到GitHub上下载 curl开源的项目 https://github.com/curl/curl

克隆下来以后 进入 curl 当前目录下 新建一个“deps”的文件夹

把前面生成 的静态或者动态的OpenSSL 的bin 、include 、lib  这三个文件夹拷贝到 “deps”文件夹下

Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库

接着运行 buildconf.bat文件

Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库

 

接着运行 visual studio 2015 的命令行工具 记得管理员身份运行

Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库

首次进入会在C:\Program Files (x86)\Microsoft Visual Studio 14.0> 这里

我们需要进入 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

命令行 输入

cd vc\bin

  

回车进入

接着 控制台 输入

vcvars32.bat

这个时候 我们需要进入 我们刚下载 的curl\winbuild目录下了

因为我的curl 下载 放到了E盘 这里我需要切换到E盘 并且cd 到 E:\OpenSource\curl\winbuild 下

cd curl-src \ winbuild

然后你可以用所需的选项调用nmake / f Makefile.vc(见下文)。
该版本将位于*src目录中,并生成\目录
一个使用提供给nmake调用的选项命名的目录。

nmake / f Makefile.vc mode = <static或dll> <options>

其中<options>是一个或多个:
  VC = <6,7,8,9,10,11,12,14,15> - VC版本
  WITH_DEVEL = <路径> - 开发文件的路径(SSL,zlib等)
                                 默认为同级目录代表:../deps
                                 可以通过http://windows.php.net/downloads/php-sdk/deps/获取图书馆
                                 将它们解压缩到deps文件夹中。
  WITH_SSL = <dll或static> - 启用OpenSSL支持,DLL或静态
  WITH_NGHTTP2 = <dll或static> - 启用HTTP / 2支持,DLL或静态
  WITH_MBEDTLS = <dll或static> - 启用mbedTLS支持,DLL或静态
  WITH_CARES = <dll或static> - 启用c-ares支持,DLL或静态
  WITH_ZLIB = <dll或static> - 启用zlib支持,DLL或静态
  WITH_SSH2 = <dll或static> - 启用libSSH2支持,DLL或静态
  ENABLE_SSPI = <yes或no> - 启用SSPI支持,默认为yes
  ENABLE_IPV6 = <是或否> - 启用IPv6,默认为yes
  ENABLE_IDN = <是或否> - 启用Windows IDN API,默认为yes
                                 需要Windows Vista或更高版本,或从以下位置安装:
                                 https://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
  ENABLE_WINSSL = <是或否> - 启用本机Windows SSL支持,默认为yes
  GEN_PDB = <是或否> - 生成程序数据库(用于发布版本的调试符号)
  DEBUG = <是或否> - 调试版本
  MACHINE = <x86或x64> - 目标架构(默认为x86)

微软C RunTime(CRT)的静态链接:
==============================================
如果你使用mode = static,nmake会创建并链接到静态构建
libcurl但不是*静态CRT。如果你一定要强制nmake链接进去
通过传递RTLIBCFG =静态的静态CRT。通常你不应该使用它
选项,并且nmake将默认为DLL CRT。 RTLIBCFG很少使用
因此很少测试

上面的就是编译所需要的 一些 参数

在命令行 输入 如下代码  回车即可

nmake /f Makefile.vc mode=static VC=14 WITH_SSL=static WITH_DEVEL=E:\OpenSource\curl\deps\ DEBUG=yes  ENABLE_IDN=no

 当然 想编译其他的 可以根据参数自己修改

这个就是 添加OpenSSL 后的静态支持库 libcurl访问HTTPS网站的 效果图

不过 这个支持库的大小有点大 足足 21Mb多 编译后的文件在 builds 文件夹下

Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库

Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库