libcurl编译支持xp系统


前言

libcurl是一个跨平台的网络协议库,支持http、https和ftp等大部分常用协议,程序中可以方便的使用HTTP POST、HTTP PUT、FTP 上传、HTTP基本表单上传等操作。

一、为什么要编译libcurl?

libcurl默认使用一些xp不支持的API函数,例如:InitializeCriticalSectionEx,如果直接使用会提示找到对应的接口函数,项目为了支持XP,需要重新编译libcurl。

二、编译步骤

1.准备编译工具:ActivePerl、DMake、NASM

下载安装Perl程序,用来编译OpenSSL,下载地址:

ActivePerl:https://www.activestate.com/products/perl/
Strawberry Perl: https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi

下载安装DMake,可以单独下载,也可以安装Perl后,在控制台直接使用PPM来安装,安装脚本:

PPM install dmake

下载安装NASM,不使用可以不安装,下载地址:

https://www.nasm.us/pub/nasm/releasebuilds/?C=M

2.编译OpenSSL,支持XP系统

下载OpenSSL v1.0版本:OpenSSL_1_0_2u,下载后把源码解压到d:\github\openssl目录。
根据项目使用的VS版本,选择相应的编译工具,例如我选择"VS2012 x86 本机工具命令提示",通过命令行进入到OpenSSL的源码目录,然后执行如下命令:

perl configure VC-WIN32 no-shared --prefix="d:\github\openssl\build_x86"

如果需要编译debug版本,则使用一下命令:

perl configure debug-VC-WIN32 no-shared --prefix="d:\github\openssl\build_x86"
  • VC-WIN32 表示编译出来的程序时32位的(x86),64位程序使用VS_WIN64A(A代表AMD64)或者VC-WIN64I(I代表IA64)
  • no-shared 表示编译静态库,如果需要编译动态库,去掉此选项
  • –prefix后面跟的是编译完成保存的目录

编译OpenSSL静态库:

ms\do_ms.bat 
nmake -f ms\nt.mak 
nmake -f ms\nt.mak test
nmake -f ms\nt.mak clean
nmake -f ms\nt.mak install

编译OpenSSL动态库:

ms\do_ms.bat 
nmake -f ms\ntdll.mak 
nmake -f ms\ntdll.mak test
nmake -f ms\ntdll.mak clean
nmake -f ms\ntdll.mak install

编译完成后,可以在d:\github\openssl\build_x86目录下看到生成的lib库。

3.编译libcurl

从github上下载curl-7.69.1版本到d:\github目录下,使用VS2012打开Curl项目(项目在“d:\github\curl-7.69.1\projects\Windows\VC11”)。按照常规的依赖库配置方式,把OpenSSL的头文件和库目录配置好curl项目,然后根据需求选择编译选项即可,例如:
libcurl项目配置
为了支持XP系统,编译工具一定要选择支持XP的选项:
libcurl支持XP
编译成功后就可以在curl的build目录下看到编译好的库文件了:
libcurl库

总结

编译openssl过程中,可能还会遇到链接加密库失败的问题,如果遇到在项目链接库里面配置好Crypt32.lib即可编译成功。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值