Visual Stdio2019下配置Libcurl的详细教程

Visual Stdio 2019下编译和配置Libcurl

导言:本文是在VS2019下配置libcurl的一个教程,涉及到libcurl的编译

1、提前资源下载、准备

VS2019的下载

官网:https://visualstudio.microsoft.com/zh-hans/vs/
在这里插入图片描述
安装教程: 一位博主的超详细的安装、使用教程

Libcurl的下载

官网:https://curl.haxx.se/download.html

在这里插入图片描述
下载完成后-开始解压到一个文件夹里,我是直接解压到当前文件夹下面的

在这里插入图片描述
进入到解压的文件夹下:先执行一下buildconfi.bat(双击就OK了)

在这里插入图片描述
介绍一下winbuild文件夹,可不看这个,

这个路径是一会儿我们需要的,这个路径以你下载保存的路径为准哈
Makefile.vc是要被编译的文件
在这里插入图片描述到这里 完成进度:30%

2、编译libcurl

使用VC native tool 命令行编译

1、打开VS2019的命令行工具

选择合适的编译平台
在这里插入图片描述

2、使用命令进行编译

1、先进入之前下载并解压的文件的winbuild目录
2、再执行nmake /f Makefile.vc mode=static VC=15 MACHINE=x86 DEBUG=no
(这个图是x86架构release版)在这里插入图片描述
(这个图是x86架构debug版)
命令是:(nmake /f Makefile.vc mode=static VC=15 MACHINE=x86 DEBUG=no)
在这里插入图片描述
命令的部分参考

mode 是指编译的方式
mode=static 就是静态编译,把需要的文件全部放在这个库里面,东西都在自己肚子里
mode=dll 动态编译,把需要的文件通过外部链接来达到,不安全不推荐,为啥?因为这种编译生成的库文件里面有一部分文件是在外部,是这个库引用的外部文件,东西不在自己肚子里
VC 是指对应VisualStdio的版本,下载官网的VC最高支持版本是(Vs2015)15
VC=15 这个VS2019是支持VC=15的,VS2017也是支持VC=15的,VS2019是从VS2017升级而来的,核心功能都是差不多的,
VC=14 VS2017早期版本是支持VC=14的
MACHINE 就是指CPU基于哪种方式架构的机器,现在一般是x86或x64的
x86 就是支持操作系统32位的,编译完成会生成这个类型的对应的库
x64 就是支持操作系统64位的,编译完成会生成这个64位类型的对应的库
DEBUG 就是是否支持调试版本的意思
DEBUG=no 生成的是release版本的库,支持发布版本的应用
DEBUG=yes 生成的是debug版的库,我们一般调试用的版本
3、保存编译好的libcurl

1、编译完成的位置
在这里插入图片描述2、我将编译生成的库,放置于其他位置以便以后使用,
我放置的位置是在D盘,我也编译了debug版的以便后面使用
在这里插入图片描述
完成进度:70%

扫描二维码关注公众号,回复: 16303735 查看本文章

3、配置VS2019项目

新建win32控制台项目

如下图的新建过程
打开新建界面
在这里插入图片描述
选择控制台应用

在这里插入图片描述
自己命名项目名字就可以啦

在这里插入图片描述

配置项目

1、在项目栏里打开该项目的属性

在这里插入图片描述
2、选择版本,这里我是使用的:debug–x86(Win32也可以看成x86)

在这里插入图片描述

3、去配置include、lib,以便让编译器找到对应的头文件和链接库

在这里插入图片描述
4、之前我们是用的静态编译(mode=static 还记得吗?),所以需要将CURL_STATICLIB添加至工程。

如何添加:直接在在那个下拉列表里面去新建一项,输入:CURL_STATICLIB 保存就可以了,

在这里插入图片描述
5、敲黑板的时候啦:链接器-输入-附加依赖项里添加以下的库

libcurl_a_debug.lib
Ws2_32.lib
Wldap32.lib
winmm.lib
Crypt32.lib
Normaliz.lib

在这里插入图片描述
注意哦!
这里的 libcurl_a_debug.lib 是在debug下的库,如果你选的是release下的库就应该是:libcurl_a.lib
这些库的具体位置是在这个文件夹下

这个是debug版的
在这里插入图片描述
这个是release版的

在这里插入图片描述

6、还有要配置一个运行库的模式
我们是使用的是静态编译下的debug版的libcurl,所以在下面的 -运行库里选择了 (/MDd)
如果编译了release版,在下面选择(/MD)。

如何选择可以参考下面这个表

静态编译 动态编译
debug (/MDd) (/MTd)
release (/MD) (/MT)

配置结果如下

在这里插入图片描述
7、在程序的调试栏也要选择 debug–x86

在这里插入图片描述

测试运行情况

1、测试代码

#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");
		/* 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;
}

运行的结果

这个是从百度网页读取的一个网页文件,下面的文件格式有些问题主要是编码方式有问题

在这里插入图片描述
这样基本上配置完成了

猜你喜欢

转载自blog.csdn.net/qq_43680827/article/details/105380969#comments_27887077