Windows下curl编译,使用vcpkg定制自己的【curl】。

         本篇介绍在Windows下如何编译curl,curl自称是星球上最好用的计算机网络工具,但是它在windows上纯手动编译很困难,我们使用vcpkg来简化它的编译,方便我们使用。

目录

一、CURL介绍

二、vcpkg下载、编译、定制【curl】

三、编写demo

四、总结


一、CURL介绍

        curl是一个广泛使用的命令行工具和库,用于在计算机网络上进行数据传输和交互,它支持多种协议和数据格式,包括 HTTP、FTP、SMTP、JSON、XML 等,curl 可以发送 HTTP 请求并显示服务器响应的详细信息,也可以下载文件或上传文件到服务器,还可以用于数据抓取、自动化任务和系统管理等场景。curl 支持多种操作系统(如 Windows、Linux、MacOS 等)和编程语言(如 shell、Python、C++ 等),因此被广泛使用于跨平台数据传输和调试。它可以应用在网络调试、文件传输、自动化、网络安全、云计算等领域。

        总之,curl可以用于各种与网络数据传输和管理相关的任务,跨平台性很高,号称地球上最好用网络传输工具。猜猜它为什么叫CURL?因为它全部由C语言构成,并且和URL相关,所以称之为CURL。

        网络调试: curl 可以用来测试网站、API 和其他网络服务的功能和性能。它可以发送 HTTP 请求并显示服务器响应的详细信息,以帮助开发人员诊断和解决问题。

       文件传输:curl 可以从网络上下载文件或上传文件到服务器。这对于备份、共享和传输大型文件非常有用。

       自动化:curl 可以与 shell 脚本、Python 等编程语言结合使用,从而实现自动化任务,如数据抓取、文件传输和系统管理等。

       网络安全:curl 支持各种安全协议和加密算法,包括 SSL、TLS 和 SSH 等。因此,它经常用于安全传输敏感数据和身份验证。

       云计算:curl 可以与各种云计算平台(如 AWS、Azure、Google Cloud 等)结合使用,从而管理云资源、上传/下载数据、执行任务等。

二、vcpkg下载、编译、定制【curl】

        vcpkg为微软开源的包管理工具,如果你还没有配置,请看下面链接:

VCPKG安装和使用教程_早睡的叶子的博客-CSDN博客

Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库_visual studio vcpkg_Achilles的博客-CSDN博客

        只需要一个命令即可:

vcpkg install curl[http2]:x64-windows

         这个是下载编译带有http2特性的curl,相应的他需要依赖nghttp2、zlib、openssl,不过你不要担心,它会帮你处理好。等待完成后,你会vcpkg下看到这些:

         1. 其中,downloads里都是下载好的工具包,zip tar居多。

         2. packages里面都是编译好的库:

        3.  installed里面都是抽取的include和lib文件,直接引用这个非常方便。

         支持http2的curl所需的头文件都在这了:

         支持http2的curl所需的静态库lib文件都在这了:

         下一步就是应用lib和include了。

三、编写demo

        将所有lib和include引入:

ws2_32.lib

wldap32.lib
libcurl-d.lib
libcrypto.lib
libssl.lib
nghttp2.lib
zlibd.lib
Crypt32.lib

        在main函数中写入如下代码:

#include <curl/curl.h>
//#include <nghttp2/nghttp2.h>
int main()
{
	CURL* curl = curl_easy_init();
	if (curl)
	{
		curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
		curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
		CURLcode res = curl_easy_perform(curl);
		if (res != CURLE_OK)
		{
			fprintf(stderr, "curl_easy_perform() failed: %s\n",
				curl_easy_strerror(res));
		}
		curl_easy_cleanup(curl);
	}
	return 0;
}

         大功告成:

四、总结

        一般我们需要curl的什么特性就在install的时候在【】里加上什么就可以了,然后注意它编出来的lib和include不要落下了,然后就可以愉快应用其中的特性了。本篇中使用了curl中http2的特性,它可以访问https开头的所有网址,并且可以实现流的通信机制。有什么问题欢迎大家评论在下面。博主祝大家身心愉悦!!!

猜你喜欢

转载自blog.csdn.net/weixin_44120785/article/details/129287826