环境:

libcurl版本:7.54.1

VS:Visual Studio 2013

一、编译

1、下载最新版的libcurl(curl-7.54.1.zip)(地址:https://curl.haxx.se/download.html),并解压。可以通过Download Winzard来选择你需要的包。

2、打开VS2013 开发人员命令提示,并CD进入 \curl-7.54.1\winbuild 目录。

VS生成代码的时候有一个运行库选项(项目属性 - 配置属性 - C/C++ - 代码生成 - 运行库)/MT和/MD(/MTd和/MDd是对应的debug版本)。编译时如果加了RTLIBCFG=static这个选项,就相当于编译了/MT版本的libcurl,否则是/MD版本的(默认);如果加了DEBUG=yes,就是编译了Debug版本的,否则就是Release版本的(默认)。

编译命令(编译静态库mode=static):

nmake /f Makefile.vc mode=static VC=12              //  相当于/MD
nmake /f Makefile.vc mode=static VC=12 DEBUG=yes // 相当于/MDd
nmake /f Makefile.vc mode=static VC=12 RTLIBCFG=static // 相当于/MT
nmake /f Makefile.vc mode=static VC=12 RTLIBCFG=static DEBUG=yes // 相当于/MTd

3、编译完毕,会在build目录生成文件。

4、更多信息参看\winbuild目录中的BUILD.WINDOWS.txt

二、使用

1、拷贝include中curl文件夹和lib文件夹中的libcurl_a.lib静态库至工程目录。

2、加入预处理定义(如果是静态连接libcurl库)和头文件

#define CURL_STATICLIB
#include "curl\curl.h"

3、链接库

#if _DEBUG
#pragma comment(lib,"libcurl_a_debug.lib")
#else
#pragma comment(lib,"libcurl_a.lib")
#endif

4、构造函数或者初始化函数中加入

curl_global_init(CURL_GLOBAL_ALL);

5、析构函数或者退出函数中加入

curl_global_cleanup();

libcurl编译及使用的更多相关文章

  1. libcurl编译使用,实现ftp功能

    Libcurl实现ftp的下载,上传功能.版本为curl-7.63.0 1.编译vs2015 参考资料:https://blog.csdn.net/yaojingkao/article/details ...

  2. libcurl编译

    下载: git://github.com/bagder/curl.git openssl: openssl编译   for linux or mingw:./buildconf./configure ...

  3. 在window平台下,自己DIY编译OpenSSL,Libcurl ,来支持HTTPS传输协议

    1 缘起 原来就了解些libcurl,一直没有机会在项目实际使用libcurl.   恰好最近一个云存储的项目,服务器使用openstack 恰好我负责现在的一个云存储SDK c++版本的开发中. 与 ...

  4. windows下libcurl+openssl编译与使用配置

    之前使用过libcurl, 编译也是最简单的版本, 不需要openssl, 即不需要支持https, 所以编译和使用都很正常. 但要使用openssl就很麻烦了, 我花了差不多两天去编译和调用, 记录 ...

  5. Windows 编译libcurl(openssl+zlib)(使用VC编译)

    libcurl主要功能就是用不同的协议连接和沟通不同的服务器,如果使用HTTPS,需要OpenSSL libcurl https://curl.haxx.se/download.html 下载Sour ...

  6. libcurl库openssl编译

    openssl编译 win32: perl Configure  no-shared VC-WIN32 --prefix=E:/lib/openssl-1.1.1 linux: ./config -f ...

  7. Yocto开发笔记之《嵌入式linux libcurl编程》(QQ交流群:519230208)

    开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...

  8. qt5集成libcurl实现tftp和ftp的方法一:搭建环境(五篇文章)

    最近使用QT5做一个软件,要求实现tftp和ftp文件传输,使用QT5开发好UI界面等功能,突然发现QT5不直接提供tftp和ftp支持,无奈之下只好找第三方库来间接实现,根据网友的介绍,libcur ...

  9. Sword libcurl使用

    libcurl编译 >> ./configure --prefix=/opt/soft/curl --disable-ldap --disable-ldaps >> make ...

随机推荐

  1. Linux ping命令详解

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性 基于IMCP协议 常见命令参数 -q 不显示任何传送封包的信息,只显示最后的结果 -n 只输出数值 -R 记录路由过程 ...

  2. POJ | Boolean Expressions

    总时间限制: 1000ms  内存限制: 65536kB 描述The objective of the program you are going to produce is to evaluate ...

  3. echo 与 od -x 与 %!xxd 命令

    echo 与 od -x 与 %!xxd 命令 echo 命令 -n 选项  可以使其不带换行符od -x 命令可以查看文件的16进制表示%!xxd 可以在vim编辑器中dump成16进制表示

  4. Hadoop Spark 基础教程

    0x01  Hadoop 慕课网 https://www.imooc.com/learn/391 Hadoop基础 慕课网 https://www.imooc.com/learn/890 Hadoop ...

  5. 遍历Map集合的几种方式

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entr ...

  6. struct class 内存结构初探-内存模型顺序和变量的实际添加顺序一致

    typedef struct structTest { char xchar; int xint; int yint; }xStruct; @interface ViewController () { ...

  7. Python - if-else 的多种简洁写法

    本博客原文来自:http://www.cnblogs.com/xiexiaoxiao/p/7772441.html,对原作者表示感谢,此处个人转载. 1. 常用 if ... else写法 # 语法 ...

  8. domain是什么

    一:domain表达式 domain表达式:通常用来筛选数据记录.它们使用特殊的语法,以便于Odoo ORM 将它们解析后生成对应的SQL WHERE数据库筛选语句. 二:domain的写法 doma ...

  9. 【webpack】config/index.js

    // see http://vuejs-templates.github.io/webpack for documentation. var path = require('path') module ...

  10. 用firefox的插件下载网页中的视频

    对于网页中的一些视频,直接下载不了,可以用专用下载软件下载,也可以用firefox的NetVideohunter Video Downloader插件下载网页中的视频,方便快捷. 工具/原料   fi ...