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

Posted 夜已深茶已凉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio 2015 编译生成支持HTTPS协议的libcurl静态库相关的知识,希望对你有一定的参考价值。

由于之前的工作需要使用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”文件夹下

接着运行 buildconf.bat文件

 

 

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

首次进入会在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静态库的主要内容,如果未能解决你的问题,请参考以下文章

OF框架在Visual Studio中启用Docker支持,编译生成,并在容器运行项目

使用 Visual Studio 2015 编译 OpenCV 2.4.12 时出错

std库中的Visual Studio编译错误

转载Visual Studio 2015 for Linux更好地支持Linux下的开发

Visual Studio 2015编译安装OpenCV 3.0和opencv_contrib

Source Generators(源代码生成器)的调试器支持 | Visual Studio 2019(16.10)新功能试用...