libcurl 探索之旅:libcurl 分别在 Unix 环境和 Windows 环境下的编译与使用

本文详细介绍了libcurl在Unix和Windows环境下的编译和使用过程,包括cURL、libcurl和curl的区别。作者分享了从获取源代码到成功编译运行示例代码的完整步骤,旨在帮助开发者理解libcurl的基础概念和实践操作。
摘要由CSDN通过智能技术生成

一、引言

因为工作的原因,加上自己的一点点兴趣爱好,今天花了一整天的时间去探索和学习 libcurl。

libcurl 的文档是非常齐全的,并且在获取到了源代码之后,里面的代码、文档、工具等等都是非常完善的。可是对于新人来说,想要从这么复杂多样的文档中摸索出来适合自己入门的方向,实在是有些困难。这篇博客,就是想要给同样深陷于 libcurl 复杂的文档中不能自拔的程序员同僚们一条我自己走出来的道路。

在这篇博客之前,我在 Ubuntu 18.04 、RedHat 7.2 以及 Windows 10 环境中成功编译了 libcurl 库,并且使用编译出来的库成功运行了同一个实例代码。一方面为了记录中间我踩过的坑,另一方面也是为了方便广大网友,我尽力将这期间我的感悟与收获写在这篇博客里,希望能够对大家有所帮助。

在编译和使用 libcurl 库之前,有个似乎很容易被老手忽略的问题一定要说一下,那就是:

cURL、libcurl 还有 curl,他们究竟是什么?

也就是说,我们需要去了解下 libcurl 及其相关的概念。

二、cURL、libcurl 还有 curl 傻傻分不清楚 T_T

可能对于新人来说,就连 cURL、libcurl 和 curl 的概念都是分不清楚的。这不怪我们,确实关于这一点,官方网站都没有说的很清楚,但是在源代码中的 FAQ 文档中却说的非常明白。

What is cURL?
cURL is the name of the project. The name is a play on ‘Client for URLs’, originally with URL spelled in uppercase to make it obvious it deals with URLs. The fact ti can also be pronounced ‘see URL’ alse helped, it works as an abbreviation for “Client URL Request Library” or why not the recursive version: “Curl URL Request Library”.

简而言之,cURL 是一个项目的名称。是 Client for URLs、see URL、Client URL Request Library 或者 Curl URL Request Library 的缩写,也就是一个客户端 URL 请求库的项目。

那么什么是 libcurl 呢?

The cURL project produces two products:
libcurl
A free and easy-to-use client-side URL transfer library.

curl
A command line tool for getting or sending files using URL syntax.

上面这段话很清晰的表现出了 cURL 与 libcurl 以及 curl 的关系,也就是说:

cURL 这个项目包含了 libcurl 和 curl 两个产品。
其中,libcurl 是一个客户端的 URL 支持库;而 curl 就是一个使用了 libcurl 库写出来的命令行工具,其可以使用 URL 标识来请求或者发送文件。

也就是说,如果我们想要编写代码来控制有关网络的行为的话,我们就需要使用到 libcurl 库而不是 curl 命令行工具;而如果我们想要直接调用 curl 命令行工具来完成一些操作,比如将其嵌入到脚本代码中去,那么这个时候,我们才会用到 curl 命令行工具。

其中 cURL、libcurl 以及 curl 三者之间的关系如下图所示(我亲手画的,轻喷 T_T):
cURL、libcurl 以及 curl

另外有趣的是,我们可以把 cURL 发音发作 see URL;可以把 curl 发作以字母 k 开头的初始音,总体类似于 girl 或者 earl 的发音,甚至官方文档 FAQ 中还给出了 curl 的官方发音:
curl 的发音录音

现在搞清楚了一些必要的概念,以及一些有趣的题外话,现在让我们来看看,我们要在 Unix 环境和 Windows 环境下编译和使用 libcurl,我们需要哪些东西,以及我们能在哪些地方获取到这些东西。

三、资料的获取

1. curl 官方网站

我们想要了解 libcurl 这个库,最直接的资源获取来源当然是官方网站:
curl 官方网站

可能对于新手来说,一点开就会觉得有些迷茫,因为可能分不清楚 curl 和 libcurl 的区别。这也是为什么我一定要在介绍资料来源之前介绍 cURL、libcurl 和 curl 三者的区别的原因。相信在我上一节花了那么大篇幅来介绍这三者的区别之后,你应该不会那么迷茫了。
curl

对于我们开发者来说,了解 libcurl 应该是最重要的。因为我们是想要使用 libcurl 库来编写代码的,而不是来学习 curl 的使用方法的。

2. libcurl 官方网站

从我上述图中画了红色框框的地方点进去,就是我们要仔细研读的重点了,也就是 libcurl 的官方文档:
libcurl 官方网站
libcurl

这个网站中的信息量非常大,包括 Tutorial 学习教程、Examples 示例代码、Download 下载地址等等信息。通过自己的尝试点击浏览可以对 libcurl 官方网站有一些初步的了解。

其中,建议大家一定要看的,就是 Tutorial 标签下的教程文档,这份教程文档虽然跳跃度很大,并且不是很适合初学者,但是对于想要一开始就宏观上了解认识 libcurl 的人来说,这是唯一的一份具有官方背书的文档了(友情提示,网上有这份文档的的中文翻译,英语不好的同学可以搜索网上资料看看)。
libcurl programming tutorial

读完了上述的文档,你可能一时间非常迷茫,但是对于 libcurl 的基础的几个概念几个函数还是有了一定的了解。此时的你,需要的可能就是如何安装编译 libcurl,并且运行几个示例代码亲手调试一番来增强自己的自信心了。

那么问题来了,我们该如何下载 libcurl 的源代码呢?

3. Download 下载 libcurl 源代码

当我们从 libcurl 网址中点开 Download Page 的时候,可能一下子又懵了,为什么呢?因为你看着这么复杂的页面,一时间不知道该下载哪个文件:
download page

这里,通过我的尝

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值