彩鸟杂谈2:windows系统中libcurl的编译与使用

首先声明:本人现在使用的curl是8.0.1的mingw版本,windows的mingw版本不再需要自编译!windows的mingw版本不再需要自编译!windows的mingw版本不再需要自编译!(重要的话讲三遍)以后版本再次更新可能使用方法还会有变化,请以最新的指南为准!

        我在查遍全网的curl使用指南后,终于在某一天的下午突然潘然醒悟!最终可以成功使用了curl,简直令我潸然泪下。为了不让其他小伙伴们不再受难,我决定写一篇更新过得libcurl教程,本人代码水平极低,我保证这篇教程幼儿园的孩子也能看明白!

一、libcurl简介

专业的看了太多了,就简单说吧,提供C语言的API接口服务,支持多种协议的URL传输库。

二、libcurl的安装与使用

·官方安装网址:curl - Download

·GitHub安装网址:https://github.com/curl/curl

(笔者比较笨逼,官方搞完了以后就没管github了,如有需要请移步其他博客的空间查看!)

 打开了以后是这样的,但是!但是!先不要直接下载zip!往下找!

 这个里面的安装包才是我们真正需要的!如果是64位就下载64位,32位就下载32位即可

下载完成后解压,文件夹内容如下图,文件夹名为curl-8.0.1_7-win64-mingw:

 现在文件夹中bin和lib已经都有了,完全可以直接使用了,所以根本不需要进行自编译!直接开始往环境变量里塞文件就可以了噻

三、环境变量的配置

鼠标右键“我的电脑”——“属性”——相关设置中的“高级系统设置”——“环境变量”

 首先在系统变量中新增

CURL_HOME

位置就是你的libcurl的文件位置,我这里是

E:\C++\curl-8.0.1_7-win64-mingw

结果如图
 

 然后在系统变量中找Path,双击点进去,总共要新建两条变量,先新建第一条

%CURL_HOME%\I386

然后是第二条,就是你的libcurl的bin文件的位置,我这里就是按照我的文件存放位置写了,自己写的时候要注意一下

E:\C++\OpenSSL-Win64\bin

 结果如图

 然后就可以保存,进行下一步啦!

如果不放心,可以打开命令行窗口(cmd)输入curl --help检查一下,如果如图所示肯定就OK了

四.VS的配置 

 接下来就是要导入VS里面去真正使用了,先随便创个项目,点击“项目”——“属性“,打开属性页

 

 然后在包含目录中添加curl的头文件

E:\C++\curl-8.0.1_7-win64-mingw\include

在库目录中添加curl的库文件

E:\C++\curl-8.0.1_7-win64-mingw\lib

 然后需要加入依赖项才能正常使用,不然在用时会出现找不到头文件的问题,依赖项的位置就在”链接器“——“输入”中,需要做的就是把lib里的所有.a文件倒入就可以啦(其实就是我接下来列出来的这些,CV大法即可

libbrotlicommon.a

libbrotlidec.a

libcrypto.a

libcurl.a

libcurl.dll.a

libgsasl.a

libnghttp2.a

libnghttp3.a

libngtcp2.a

libngtcp2_crypto_openssl.a

libssh2.a

libssl.a

libz.a

libzstd.a

什么?你问为什么lib文件里面为什么是.a文件?这是因为curl的mingw版本编译问题,其实.a文件和.lib文件在用法上差别不大,所以直接安心导入.a文件就可以啦!

什么?你不会添加上面这两个文件?别担心,刚开始我也不会,接下来告诉你该如何添加文件

鼠标双击“包含目录”,点击右边的小箭头

 点击编辑

 就来到了这个界面

点击右上角的“文件夹+”的小图标,再点击...就可以啦

到这里基本就完成了,接下来只需要引入库即可使用了,接下来是个查看百度的测试代码,可以自行测试一下,如果还是会有BUG那可能是没有安装OpenSSL,自行安装即可。

五.测试代码

*注意,这段测试代码是博客园中的fengMisaka大佬的代码,原文在这里:【C++开源库】Windows 下编译 libcurl 库 - fengMisaka - 博客园 (cnblogs.com)

真的非常感谢各路大佬的教程,我才能最后整合出来一个这样比较简单的教程。

#include <curl/curl.h>    

int main(int argc, char* argv[]) {
    CURL* curl = nullptr;
    CURLcode res;
    curl = curl_easy_init();
    if (curl != nullptr) {
        curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com");
        /* example.com is redirected, so we tell libcurl to follow redirection */
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        /* Perform the request, res will get the return code */
        res = curl_easy_perform(curl);
        /* Check for errors */
        if (res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        }
        /* always cleanup */
        curl_easy_cleanup(curl);
    }

    return 0;
}

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值