每天进步一点点:终于搞定了libcurl Windows下编译

in #curl7 years ago

在昨天的帖子每天进步一点点:C++ 中使用libcurl 获取返回数据的学习中,大致学会了怎么用libcurl 向网站POST或者GET数据,以及如何将返回数据存储到变量。


(图源 :pixabay)

今天突发奇想,在Windows下测试一下嘛。结果一下子掉坑里了,一整天都在晕如何在Windows下编译。研究了一大堆网页,迷糊到爆炸的时候,才发现人家官方就有Windows下编译指南,我这一天干得都啥事啊。尽管如此,操作起来还是很麻烦,踩了一堆坑,记录如下,备忘以及供需要的朋友参考吧。

步骤

下载源码

首先去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

执行编译指令:
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


一切正常!

参考文件

Sort:  

我这辈子都不可能用 win 做开发的

我这辈子都只用PHP做开发

在windows写程序有时候特麻烦的,尤其是powershell,所以我特地去买了苹果macbook。

壕,你好。

Light removes darkness
Education removes darkness
Failed never removes darkness
Your this post so good

Coin Marketplace

STEEM 0.22
TRX 0.20
JST 0.034
BTC 99006.74
ETH 3331.65
USDT 1.00
SBD 3.09