Windows 下编译 libcurl 库

近期的项目中用到了文件的上传和下载功能,于是就发现了 libcurl 网络传输库。要使用该库,当然首先就需要进行编译生成 lib 或 dll 库,本文将介绍在 Windows 平台下使用 Visual Studio 2015 工具编译 libcurl 库的基本步骤。

下载libcurl源代码,压缩包大小大概5MB,下载完成解压到一个合适位置。在目录/projects/Windows下有可以找到一系列的Visual studio的解决方案。打开与自己安装版本对应的解决方案,在配置管理器中可以看到一系列的解决方案配置,大体是以静态库还是动态库以及是否支持OpenSSL作为区分的,如果选择不支持OpenSSL版本,直接就可以编译通过了。但是不支持OpenSSL的版本将不支持https协议,然而现在大多数的访问都是基于https协议的,因此我们需要选择支持OpenSSL的方案配置,但是直接编译将会得到一些头文件无法打开和依赖库不存在错误,其原因是libcurl的源代码中并不包含OpenSSL的源代码,因此我们需要首先下载并编译OpenSSL库。

编译OpenSSL需要使用开始菜单中Virtual studio目录下的“本机工具命令提示符”自己选择使用x86还是x64位的版本。

编译OpenSSL需要注意一下几点:

  • 下载并安装perl。
  • 下载源代码 1.0.X版本,最新版本变化很大,可能需要比较多的手动配置。
  • 配置使用 perl Configure VC-WIN32(或者debug-VC-WIN32) no-asm
  • 编译 nmake -f ms\ntdll.mak
  • 编译完成需要运行测试 nmake -f ms\ntdll.mak test
  • 如果需要安装使用 nmake -f ms\ntdll.mak install

编译完成之后根据编译libcurl时的错误提示配置一下OpenSSL的头文件和库文件位置,即可通过libcurl的编译了。
如果想做个简单实验,可以在libcurl的网站找到示例代码。


分割线,2019/04/22
使用最新的OpenSSL代码(1.1.X)的说明
1.0.X版本的OpenSSL虽然也支持多线程,但是须要我们自己实现两个回调函数,而1.1.X版本之后已经不再了,对于我们使用者无疑方便了一些,但同时也须要注意两个问题。

最新的编译说明:(源代码中的INSTALL文件中有非常详细的说明)

openssl编译.png

1.0.X版本编译之后会生成libeay32.libssleay32.lib这两个库文件,我在使用的时候须要连接这两个库。但是1.1.X代码编译之后已经不会再生成这两个库文件,取而代之的是libssl.liblibcrypto.lib,因此在进行代码移植的时候须要注意替换一下。
比较坑爹的是官方文档中并没有对此进行说明 -_-''

TIM图片20190422110449.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 编译libcurl是一件繁琐但并不复杂的事情,因为需要多个库的配合。编译前务必提前准备好zlib库、open...
    ORCLee阅读 3,112评论 0 0
  • 最近因需要尝试编译了一次Vbox,官方论坛上只有32位环境的编译教程,所以这次在64位、特别是中文环境上遇到不少坑...
    MushiUta阅读 5,757评论 0 6
  • openssl版本:openssl-1.0.2e 在Windows环境下编译openssl需要perl支持,安装A...
    四明羽客阅读 6,180评论 0 2
  • 原型图 管理员登录 登录成功进入首页(A1) 否则alert("账号或密码错误!"); 首页A1 | 书名 ...
    李景磊阅读 480评论 0 0
  • “富贵不能淫,贫贱不能移”这种美德当今社会可谓凤毛麟角,在狗身上却普遍存在这着!即使主人沦为乞丐,它也不...
    大乱乱阅读 391评论 0 0