[C++] 如何使用libcurl.lib
本文使用环境
系统: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,和用户认证。
下载
编译
- 解压curl-version.zip 压缩文件
- 运行解压后的buildconf.bat
- 进入vs开发工具的 Visual Studio 命令行工具
- 命令行中进入winbuild目录。(eg: d:\curl-8.0.0\winbuild)
- 编译
nmake /f Makefile.vc mode=static VC=10 MACHINE=x64 DEBUG=no
- 命令行参数说明
mode : static/dll #静态库编译/动态库编译
MACHINE : x64/x86 #编译64和32位
DEBUG : no/yes #是否debug版本
vc : 10 #vs版本可见下表
VS版本 | VC版本 |
---|---|
Visual Studio 6 | VC6 |
Visual Studio 2003 | VC7 |
Visual Studio 2005 | VC8 |
Visual Studio 2008 | VC9 |
Visual Studio 2010 | VC10 |
Visual Studio 2012 | VC11 |
Visual Studio 2013 | VC12 |
Visual Studio 2015 | VC14 |
Visual Studio 2017 | VC15 |
Visual Studio 2019 | VC16 |
Visual Studio 2022 | VC17 |
编译后可查看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进入第一个目录保存: include 和 lib 文件夹
使用配置
- 进入使用的工程目录,将编译好的include 和 lib 文件夹,合并到项目中。
- 在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; |
- 自此完成配置
测试使用
#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;
}