文章目录

  • 前言
  • 一、为什么要编译libcurl?
  • 二、编译步骤
    • 1.准备编译工具:ActivePerl、DMake、NASM
    • 2.编译OpenSSL,支持XP系统
    • 3.编译libcurl
  • 总结

前言

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项目,然后根据需求选择编译选项即可,例如:

为了支持XP系统,编译工具一定要选择支持XP的选项:

编译成功后就可以在curl的build目录下看到编译好的库文件了:

总结

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

libcurl编译支持xp系统相关推荐

  1. win10下使用vs2015编译支持xp系统的libcurl

    在我的一篇博客中写了编译libcurl的,那种方式编译的curl动态库在win7到win10上可以使用,但是在xp系统里就不能使用了,接下来讲解一种方法可以在xp系统里使用cur. 1 编译opens ...

  2. win10 vs2015 jsoncpp编译 支持xp系统

    01 环境 系统:win10企业版10.0.14393 vs2015企业版.git.CMake3.4.0 相关文档: 老官网:http://open-source-parsers.github.io/ ...

  3. VS2019和boost编译支持xp系统

    前言 ​ 最近要做个守护程序来监听一个http程序,故想到了windows的服务程序.因为大量用户使用xp系统,所以要兼容xp. ​ 我用的是vs2019和boost库.两个都需要设置,才能保证程序在 ...

  4. VS2015编译适用于XP系统sp3的dll全过程-无需vs2015运行库

    问题1:dll是否依赖于其他的库 答:dll依赖于libcurl+openssl+boost,因此dll要编译成支持xp的静态MFC+MT版,libcurl+openssl+boost同样也要编译成支 ...

  5. 基于cefsharp的浏览器应用开发(支持XP系统)

    一.开发环境 VS2013 + CefSharp WinForms 37.0.3 二.CefSharp WinForms 37.0.3 安装方法: 1. VS2013: 工具 -> NuGet包 ...

  6. 使用nw.js将网址打包生成exe可安装程序支持xp系统

    说明: 查了很多资料,都是将本地代码打包,且都有头无尾,所以将自己的打包经过写一个完整教程. 注:(本文是将网址[例:www.baidu.com]打包成一个可安装的exe文件) 一:安装前准备程序 1 ...

  7. win10环境编译支持xp的libcurl+openssl踩过的坑

    1.编译环境 win10环境,64位,vs2013 2.使用环境 dll方式.兼容xp.32位 3.编译过程 3.1 编译openssl 3.1.1. 使用工具ActivePerl  http://w ...

  8. Qt5.6.3+VS2013环境搭建教程(最后支持XP系统的Qt版本)

    之所以使用Qt5.6.3+VS2013环境搭配,是考虑到Qt5.6.x是Qt官方最后支持Windows XP的版本,再往大的版本都不支持XP了.VS2013是编译器,因为官方没有提供VS2015以上的 ...

  9. xp框架下载官方_斐讯路由器系列「K1-K2-K2P-K2T」-Breed刷入工具v1.1支持XP系统

    软件声明: 本软件仅仅是用来刷入Breed不死控制台的,软件由huzibbs制作,本人并不是Breed的原作者,请勿搞混,避免给H大和本人带来困扰. 软件介绍: K1/K1S/K2/K2P/K2T-B ...

最新文章

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:计算生肖
  2. 数据方面高可用方案简单总结
  3. java script isblank_java判断一个字符串是否为空,isEmpty和isBlank的区别
  4. 中高德地图只显示某一城市_干货 | 如何快速制作数据地图?让你的可视化逼格再高一级!...
  5. 【ARM】Tiny4412裸板编程之蜂鸣器
  6. 飞鸽传书FreeEIM买还是不买?
  7. 学生对象数组实现按年龄排序 按成绩排序1022
  8. 异常收集之:navicatdesignquery.sql.bak 系统找不到指定路径
  9. Android 系统(167)----OTA升级常见问题
  10. monkey配置及简单报告生成(安卓)
  11. 浅分享一下zzulioj刷题总结
  12. 深度卷积神经网络(CNN)
  13. 基于 Flink 的 PB 级数据即席查询实践
  14. ps显示计算机内存不足怎么办,PS常见问题——内存不足,解决办法!
  15. jQuery 效果 - 淡入淡出,fadeIn,fadeOut,fadeToggle的使用
  16. 小米手机是什么系统?
  17. Lua 实现复数计算器
  18. 初中生c语言入门自学视频,初中生如何学好c语言
  19. outlook邮箱收到的附件(excel, word, ppt)不能正常打开的解决办法
  20. 11 款超赞的 MySQL 图形化工具,好用!

热门文章

  1. 我想买1000元左右的手机
  2. 信用证之进出口信用证
  3. Java DataSourceBeanCreationException: Failed to determine a suitable driver class问题解决
  4. 函数定义、函数声明、函数原型
  5. 0x80073712_0x80073712 【解决门径】
  6. github提供在线加速下载的7个网站
  7. MySQL-06-RedoLog
  8. Altium Designer 20的中英文切换
  9. 华为云GaussDB以技术创新引领金融行业分布式转型
  10. 轻巧画图工具_网页设计师使用的20种超轻巧典雅字体