visual studio 2017 libcurl

visual studio 2017 libcurl

Visual Studio(VS2017)编译并使用curl C/C++ HTTP GET POST libcurl(二、调用示例)

https://my.oschina.net/u/4370838/blog/4326553

https://curl.haxx.se/libcurl/c/example.html

VS生成代码的时候有一个运行库选项(项目属性 - 配置属性 - C/C++ - 代码生成 - 运行库)/MT和/MD(/MTd和/MDd是对应的debug版本)

就是说你编译时如果加了RTLIBCFG=static这个选项,就相当于编译了/MT版本的libcurl,否则是/MD版本的

vs2017—vs2010 如何编译和使用libcurl库

1,从网站下载编译好的库文件:

如果不想自己手动编译,可以直接从这里下载对应的库文件:https://windows.php.net/downloads/php-sdk/deps/

目前提供的有vc11(vs2012), vc14(vs2015), vc15(vs2017),每个版本都有x64和x32版本。
如果你是VS2017且未更新到最新版,VC=15建议改为VC=14。

2,libcurl手动编译源码:

(1)在这里https://github.com/curl/curl下载源码,注意选择分支,目前使用的分支为7.59.0

(2)进入到下载的源码文件夹中,双击buildconf.bat文件运行

(3)进入curl文件夹中的“winbuild”文件夹,并复制其文件夹路径,例如:E:\xxxxxxxxxx\curl_7.59.0\winbuild

(4)打开开始菜单,找到vs2017,编译64位,选择"适用于 VS 2017 的 x64 本机工具命令提示",编译32位,选择"适用于 VS 2017 的 x86 本机工具命令提示",这里使用64位为例, 右键以管理员身份运行,进入到命令行中,输入命令: cd /d E:\xxxxxxxxxx\curl_7.59.0\winbuild,进入到此目录

(5)输入: nmake /f Makefile.vc mode=static VC=15 MACHINE=x64 DEBUG=no 。
如果想使用动态编译,将“mode=static”改为“mode=dll”。
如果使用其他版本Visual Studio,“VC=”后面的数字应该改为该Visual Studio版本。
如果使用x86,将“MACHINE=x64”改为“MACHINE=x86”。

    如果需要debug版,将“DEBUG=no”改为“DEBUG=yes”。

(6)输入上面命令之后,回车,等待编译完成,

打开curl源码文件夹中的“builds”文件夹,将名字最短的文件夹备份(如果x64和x86都编译了,则需要备份两个名字最短的文件夹),curl文件夹如果无其他需要则可全部删除。这个库文件就是我们最终要调用的文件。编译完成。

便捷的方法

后来发现有更便捷的方法,curl-7.66.0\projects\Windows 目录下有现成的MSVC项目文件!

1

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查看。

1

您可以使用vcpkg安装curl:

从> https://github.com/microsoft/vcpkg/archive/2019.08.zip 并将其解压缩到您选择的文件夹中(例如C:\ vcpkg )
打开Developer Command Prompt for VS 2017(请参阅Windows开始"菜单或%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools),然后将cd移至C:\vcpkg
运行bootstrap-vcpkg.bat
运行vcpkg.exe integrate install
运行vcpkg.exe install curl
在Visual Studio中创建一个新的C ++项目,您就可以开始使用-结合上面的示例进行尝试.无需修改项目设置.

2

6、还有要配置一个运行库的模式
我们是使用的是静态编译下的debug版的libcurl,所以在下面的 -运行库里选择了 (/MDd)
如果编译了release版,在下面选择(/MD)。
如何选择可以参考下面这个表
在这里插入图片描述

Visual Studio 2017编译和配置libcurl开发环境

https://blog.csdn.net/bency/article/details/80773932

下载

在这里插入图片描述
解压到
F:\mfc_work\curl-7.80.0
解压文件,进入目录curl-7.80.0,运行buildconf.bat
进入curl-7.80.0目录下的winbuild目录,复制路径
F:\mfc_work\curl-7.80.0\winbuild
进行x64编译
在这里插入图片描述

在这里插入图片描述

输入 :

cd /D F:\mfc_work\curl-7.80.0\winbuild
nmake /f Makefile.vc mode=static VC=15 MACHINE=x64 DEBUG=no 

编译 很快,不到2分钟
在这里插入图片描述
把文件夹
libcurl-vc15-x64-release-static-ipv6-sspi-schannel
复制到其他的地方,以便长期使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
默认的是 x86 ,估计需要修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

libcurl_a.lib;
ws2_32.lib;
winmm.lib;
wldap32.lib;
Crypt32.lib;
Normaliz.lib;

在这里插入图片描述

CURL_STATICLIB;
_CRT_SECURE_NO_WARNINGS;

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行例子

测试例子:https://curl.haxx.se/libcurl/c/fileupload.html

#include <curl/curl.h>    
 
int main(int argc, char* argv[]) {
    
    
    CURL *curl = nullptr;
    CURLcode res;
    curl = curl_easy_init();
    if (curl != nullptr) {
    
    
        curl_easy_setopt(curl, CURLOPT_URL, "http://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/wowocpp/article/details/121837080