[C++] 如何使用libcurl.lib

20 天前
/ ,
37

阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。

本文使用环境

系统:windows 11
开发环境: vs2010

libcurl库的功能

libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。
libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。
libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。

下载

官方下载地址

编译

  1. 解压curl-version.zip 压缩文件
  2. 运行解压后的buildconf.bat
  3. 进入vs开发工具的 Visual Studio 命令行工具
  4. 命令行中进入winbuild目录。(eg: d:\curl-8.0.0\winbuild)
  5. 编译
 nmake /f Makefile.vc mode=static VC=10 MACHINE=x64 DEBUG=no
  1. 命令行参数说明
mode : static/dll #静态库编译/动态库编译
MACHINE : x64/x86 #编译64和32位
DEBUG : no/yes #是否debug版本
vc : 10 #vs版本可见下表
VS版本VC版本
Visual Studio 6VC6
Visual Studio 2003VC7
Visual Studio 2005VC8
Visual Studio 2008VC9
Visual Studio 2010VC10
Visual Studio 2012VC11
Visual Studio 2013VC12
Visual Studio 2015VC14
Visual Studio 2017VC15
Visual Studio 2019VC16
Visual Studio 2022VC17
  1. 编译后可查看builds目录(不同环境产生的目录名不一致)

    libcurl-vc10-x64-release-static-ipv6-sspi-winssl
    libcurl-vc10-x64-release-static-ipv6-sspi-winssl-obj-curl
    libcurl-vc10-x64-release-static-ipv6-sspi-winssl-obj-lib

  2. 进入第一个目录保存: include 和 lib 文件夹

使用配置

  1. 进入使用的工程目录,将编译好的include 和 lib 文件夹,合并到项目中。
  2. 在vs中右键项目属性进行下面的调整(注意调整的环境和平台)
选项卡调整内容
属性配置-常规-字符集使用 Unicode 字符集
属性配置-VC++目录-包含目录$(ProjectDir)\include;
属性配置-VC++目录-库目录$(ProjectDir)\lib;
属性配置-C/C++-预处理器-预处理器定义CURL_STATICLIB
属性配置-C/C++-代码生成-运行库多线程DLL(/MD)
属性配置-链接器-输入-附加依赖项libcurl_a.lib;Ws2_32.lib;Wldap32.lib;winmm.lib;Crypt32.lib;Normaliz.lib;
  1. 自此完成配置

测试使用


#include <curl/curl.h>
 
int main() {
    CURL* curl = curl_easy_init();
    if (curl) {
        CURLcode res;
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
    }
    return 0;
}
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...