windows 编译libcurl

1.首先到https://curl.haxx.se/download.html 下载。我这里最新版是curl-7.58.0.zip 
2.然后打开VS2017的命令行工具 切换到XXX/curl-7.58.0\winbuild 目录下
3.输入 nmake /f makefile.vc mode=static VC=15 ENABLE_IDN=no debug=no 其中VC15对应VS2017。 debug也可以是yes 生成debug版本。我这里是static引用。和dll的不一样。请注意。
4.等待编译完成。这时,会在XXX下的curl-7.58.0\builds\libcurl-vc15-x86-debug-static-ipv6-sspi-winssl 生成你所需要引用的一切。
5.打开你自己的工程,设置好include lib的目录为该目录下的include和lib路径。可以进bin目录 输入curl -V 查看 已有https支持。

6.以下是完整代码


#include "stdafx.h"
#include <string>

#define CURL_STATICLIB //===注意不要漏掉这个
#include <curl/curl.h>
#pragma comment(lib,"libcurl_a_debug.lib")

using namespace std;

void ImageDownloader(const string& image_url, const string& save_address)
{
	CURL* curl;
	CURLcode res;

	curl = curl_easy_init();

	FILE* fp = nullptr;
	fopen_s(&fp, save_address.c_str(), "wb");
	res = curl_easy_setopt(curl, CURLOPT_URL, image_url.c_str());
	if (res != CURLE_OK)
	{
		curl_easy_cleanup(curl);
		return;
	}

	res = curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);//设定为不验证证书和HOST  
	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);

	res = curl_easy_perform(curl);
	fclose(fp);

	curl_easy_cleanup(curl);
}

int main()
{
	curl_global_init(CURL_GLOBAL_WIN32);

	ImageDownloader("https://www.baidu.com/img/bd_logo1.png", "d:/aaa.png");

    return 0;
}
CMake 直接编译出来的并不能用https。。。醉了。




//==========附录 
使用winssl的优势
https://www.cnblogs.com/chenyangchun/p/6868102.html


编译事项
http://blog.csdn.net/ixiaochouyu/article/details/47998267


代码来源
http://blog.csdn.net/ProgrammerApprentice/article/details/52881793

猜你喜欢

转载自blog.csdn.net/glunoy/article/details/79412963