Window 10上VS2019编译并配置C++libcurl开发环境

这是转载的一篇文章,记录在博客里方便查阅。

原文请参考:
https://blog.youkuaiyun.com/DaSo_优快云/article/details/77587916
————————————————
版权声明:本文为优快云博主「null.space」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/DaSo_优快云/article/details/77587916

正文

【警告】
请确保电脑上没有安装2017/2019以外版本的Visual Studio(尤其是2015),否则可能会出现LNK2001错误。

libcurl下载地址:
https://curl.se/download.html
打开上方源码下载地址,下载最新版的压缩包。
在这里插入图片描述
解压,并进入文件夹,运行buildconf.bat。
在这里插入图片描述
本文以编译x64为例
在开始菜单中找到Visual Studio 2017/2019文件夹,编译64位则右击x64 Native Tools Command Prompt for VS 2017/2019,编译32位则右击x86 Native Tools Command Prompt for VS 2017/2019,选择Run as administrator。
在这里插入图片描述
进入curl文件夹中的winbuild文件夹。
在这里插入图片描述
VS2017/2019+x64+静态编译:
输入nmake /f Makefile.vc mode=static VC=15 MACHINE=x64 DEBUG=no。
如需动态编译,将mode=static改为mode=dll。(本文仅演示静态编译,同时curl官方也不建议使用动态编译)
如需编译为x86,将MACHINE=x64改为MACHINE=x86。
如需编译为debug版,将DEBUG=no改为DEBUG=yes。
如果你是VS2017且未更新到最新版,VC=15建议改为VC=14。
更详细的编译指令及说明可以打开winbuild文件夹中的BUILD.WINDOWS.txt查看。
在这里插入图片描述
回车,等待编译完成,关闭控制台界面。
打开curl文件夹中的builds文件夹,将名字最短的文件夹备份,其余文件夹为编译时产生的临时文件,可全部删除。
在这里插入图片描述
本文将编译生成的文件夹剪切至其他路径,以便长期使用。
在这里插入图片描述
配置工程
新建一个项目。本文选择新建一个名为Test的空项目。
在这里插入图片描述
右击项目,选择Properties。
在这里插入图片描述
选择需要的配置。
下图为本文所选择的Configurations和Platform,请自行根据需要选择切换。
在这里插入图片描述
将编译得到include文件夹和lib文件夹添加至工程。
如果编译了debug版libcurl,则应将debug文件夹中的内容添加至Configurations: Debug
如果编译了x86,则将x86文件夹中的内容添加至Platform: x86
在这里插入图片描述

注意,我转载的这个博主是2017年下载的curl-7.55.1,而我下载curl的时候(2021年5月),curl已经是curl-7.76.1了,按照上面这个博主这样添加include路径是不对的。因为这个include文件夹下还有一层文件夹curl,我们要现将curl文件夹里的全部文件复制到这个include目录中才行,我之前也试过没复制这些文件到include文件夹下,直接修改include路径(上图),改到include/curl下,实验证明这样也是不行的,我还是老老实实的复制吧。这个博主就是这里需要注意一下,其他地方我都试了一下,没有问题的。
在这里插入图片描述
在这里插入图片描述
将curl文件夹里的全部文件复制到这个include目录中
在这里插入图片描述
在这里插入图片描述
将以下lib添加至工程。

libcurl_a.lib
Ws2_32.lib
Wldap32.lib
winmm.lib
Crypt32.lib
Normaliz.lib

在这里插入图片描述
本文使用了静态编译,所以需要将CURL_STATICLIB添加至工程。
在这里插入图片描述
本文使用了静态编译且没有编译debug版libcurl,所以直接在Configurations: All Configurations中将Runtime Library选择为/MD。
如果编译了debug版libcurl,请分别在Configurations: Debug中选择/MDd、Configurations: Release中选择/MD。
如果使用了动态编译,则为/MTd和/MT。
在这里插入图片描述

测试代码

注意此处设置需要符合刚刚的配置。
在这里插入图片描述

#include <curl/curl.h>    

int main(int argc, char* argv[]) {
	CURL *curl = 0;
	CURLcode res;
	curl = curl_easy_init();
	if (curl != 0) {
		curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com");
		
		//www.baidu.com 可能会跳转,所以设置为跟随跳转
		curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
		
		//发出请求
		res = curl_easy_perform(curl);
		if (res != CURLE_OK) {
		    //输出可能是乱码,因为没配置UTF-8
			fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));		
		}
		
		//清理工作
		curl_easy_cleanup(curl);
	}

	return 0;
}

这个测试代码也是原博主的,输出可能是乱码,因为没配置UTF-8。
我按照原博主的流程走了一遍,除我指出的需要注意的地方要注意一下,其他操作就按照他这个来就行,如果出现异常建议删掉Project重新再来一遍。如果依然不行,可以在原博主的评论区留言>_<

原文链接:
————————————————
版权声明:本文为优快云博主「null.space」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/DaSo_优快云/article/details/77587916

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值