关于在Windows XP Server 2003下使用libcurl库的一些问题 附编译好的libcurl下载 和使用libcurl访问百度的例子工程

Posted tututu-patch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于在Windows XP Server 2003下使用libcurl库的一些问题 附编译好的libcurl下载 和使用libcurl访问百度的例子工程相关的知识,希望对你有一定的参考价值。

libcurl编译部分摘抄自别人的文章,后面是我写的的记录

步骤

下载源码

首先去github的对应页面下载curl代码,至于在Windows下你是用的git还是直接下我就不管啦,我直接下的zip.

下载好了之后,解压zip文件。

启动编译工具

在开始菜单中查找: ‘Developer Command Prompt for VS <version>‘

比如我安装的是VS2015,那么对应的工具就是:‘Developer Command Prompt for VS2015‘,启动它,进入命令行窗口。

技术图片

进入我们解压好的目录,比如我这里:
cd C:\\Users\\oflyhigh\\Downloads\\curl-master\\curl-master

执行 buildconf.bat

技术图片

Github的编译文档中没有提到这个,但是这个步骤和重要,否则编译时会出如下错误:

Copying libs...
NMAKE : fatal error U1073: don‘t know how to make ‘..\\src\\tool_hugehelp.c‘
Stop.
NMAKE : fatal error U1077: ‘"C:\\Program Files (x86)\\Microsoft\\Visual Studio 14.0\\VC\\BIN\\nmake.exe"‘ : return code ‘0x2‘
Stop.

编译

进入到winbuild目录
cd winbuild

执行编译指令:

如果想兼容XP Server 2003 请修改编译配置并使用文末的nmake命令行编译

nmake /f Makefile.vc mode=static DEBUG=no VC=14 MACHINE=x86

有关编译指令的选项说明请参考:
https://github.com/curl/curl/blob/master/winbuild/BUILD.WINDOWS.txt

对于上述指令而言,编译静态库,关闭调试,目标机器X86,编译工具版本为VC14

测试

编译成功后,我们会在项目目录下生成
builds\\libcurl-vc14-x86-release-static-ipv6-sspi-winssl目录,其中包含如下内容:
技术图片

分别是可执行文件、头文件以及静态库。

然后我们来测试一下我们编译出来的curl.exe是否好用,来试试读取创世块:

curl.exe --data "\\"id\\":1,\\"jsonrpc\\":\\"2.0\\",\\"method\\":\\"call\\",\\"params\\":[\\"database_api\\",\\"get_block\\",[1]]" https://api.steemit.com

技术图片
一切正常!

参考文件

————————————————————————————————

正文开始:

 首先编译时注意XP兼容性问题 需要对CFLAGS行和CURL_CFLAGS行末尾加/D_USING_V110_SDK71_

技术图片

 

把/subsystem:console改为/subsystem:console,"5.01"

 技术图片

 

 然后编译命令行要加上ENABLE_IDN=no关闭IDN功能,不然在xp下会报少IDN的DLL

https://github.com/curl/curl/blob/master/lib/idn_win32.c

或者你可以直接修改源码

可以参考 https://www.cnblogs.com/passedbylove/p/5979927.html

 

nmake /f Makefile.vc mode=static DEBUG=no VC=14 MACHINE=x86 ENABLE_IDN=no

附编译好的libcurl下载 32位的 https://down.97k.win/OneDrive/libcurl-vc14-x86-release-static-ipv6-sspi-winssl.7z

例子工程 https://down.97k.win/OneDrive/curltest.7z

以上是关于关于在Windows XP Server 2003下使用libcurl库的一些问题 附编译好的libcurl下载 和使用libcurl访问百度的例子工程的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows XP 上安装 Windows Server 2003 管理工具包

在 Windows XP/Server 2003 下将新旧本地时间转换为 UTC

Delphi 7:在 Win XP 或 Windows Server 2003 下编译有啥区别?

windows xp,7,10,server 2003/2008下安装oracle 10g

从Windows XP Mode到Windows 7 SQL Server的SSPI

安装了双系统后(windows server 2003),启动xp时,显示文件<windows root>system32\ntoskrnl.exe缺失。