美文网首页
Windows 下编译 libcurl 库

Windows 下编译 libcurl 库

作者: LiarMaiq | 来源:发表于2017-03-19 21:06 被阅读0次

近期的项目中用到了文件的上传和下载功能,于是就发现了 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

相关文章

  • Windows 下编译 libcurl 库

    近期的项目中用到了文件的上传和下载功能,于是就发现了 libcurl 网络传输库。要使用该库,当然首先就需要进行编...

  • MinGW下编译openssl, json-c

    目的:在windows环境下,编译开源库openssl环境:windows 10 ,Mingw及自带msys工具,...

  • 编译支持iOS的libcurl+OpenSSL库(支持https

    libcurl使用起来不难,但编译对应的iOS库文件却是个大问题,编译过程中可能各种报错,网上找的库可能libcu...

  • VS2015编译libcurl

    前言 编译libcurl是一件繁琐但并不复杂的事情,因为需要多个库的配合。编译前务必提前准备好zlib库、open...

  • libcurl 编译,使用

    libcurl 编译,使用 到官网下载最新源码,编译成库 工程中使用 工程中编译链接 链接时加参数:尝试加入这些依...

  • Windows下编译Assimp库供Android使用

    Windows下编译Android使用的Assimp库 .bat脚本 说明 下载链接:Assimp[https:/...

  • libcurl编译

    [TOC]说明:不同的编译方式需要依赖的库也不同,根据自己的需要进行编译 1、环境: Win10、VS2013 2...

  • libcurl编译

    文|Seraph 搭配 libcurl 7.26.0 (点击可下载) VC6.0 Windows Platform...

  • 编译libcurl

    参考:http://blog.csdn.net/yannanxiu/article/details/5684172...

  • win下qt编译librdkafka

    windows 下使用 Qt 的 mingw81_64 编译 librdkafka , 生成静态库。librdka...

网友评论

      本文标题:Windows 下编译 libcurl 库

      本文链接:https://www.haomeiwen.com/subject/qyvrnttx.html