Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境

#本文开发环境#
Window 10 x64 Enterprise [10.0.17763.475]
下载地址1:https://msdn.itellyou.cn/
下载地址2:https://msdn.rg-adguard.net/public.php
Visual Studio 2017/2019 Enterprise
下载地址:https://www.visualstudio.com/downloads/
libcurl [7.55.1-7.65.1]
下载地址:https://curl.haxx.se/download.html

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

编译

  • 理论上官方提供了预编译包,但是没研究明白应该怎么用,有大佬的话麻烦指点一下。

打开上方源码下载地址,下载最新版的压缩包。
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第1张图片
解压,并进入文件夹,运行buildconf.bat
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第2张图片
本文以编译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
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第3张图片
进入curl文件夹中的winbuild文件夹。
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第4张图片
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查看。
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第5张图片
回车,等待编译完成,关闭控制台界面。
打开curl文件夹中的builds文件夹,将名字最短的文件夹备份(如果x64和x86都编译了,则需要备份两个名字最短的文件夹),curl文件夹如果无其他需要则可全部删除。
这里写图片描述
本文将编译生成的文件夹剪切至其他路径,以便长期使用。
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第6张图片

配置工程

新建一个项目。本文选择新建一个名为Test的空项目。
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第7张图片
右击项目,选择Properties
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第8张图片
选择需要的配置。
下图为本文所选择的ConfigurationsPlatform,请自行根据需要选择切换。
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第9张图片
将编译得到include文件夹和lib文件夹添加至工程。
如果编译了debug版libcurl,则应将debug文件夹中的内容添加至Configurations: Debug
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第10张图片
将以下lib添加至工程。

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

Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第11张图片
本文使用了静态编译,所以需要将CURL_STATICLIB添加至工程。
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第12张图片
本文使用了静态编译且没有编译debug版libcurl,所以Runtime Library直接选择了/MD
如果编译了debug版libcurl,请在Configurations: Debug中使用/MDdConfigurations: Release中使用/MD
如果使用了动态编译,对应改为/MTd/MT
Visual Studio(VS2017/VS2019)编译并配置C/C++-libcurl开发环境_第13张图片
注意此处设置修改为和上述设置一致。
这里写图片描述

测试代码

#include     

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;
}

恕不作答VS2019以外的编译器如何配置libcurl。

你可能感兴趣的:(VC++/WINAPI,libcurl)