环境:

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. 图书管理系统 基于form组件

    models: from django.db import models # Create your models here. class Book(models.Model): name = mod ...

  2. Python实例---利用正则实现计算器[参考版]

    利用正则进行运算规则的计算 版本一: # import re # # ss = '1 - 2 * ((60 - 30 + (-40/5) * (9 - 2 * 5 / 3 + 7 / 3 * 99 / ...

  3. 新特性之MAPI over HTTP \ 配置 MAPI over HTTP

    Exchange 2016 中的 MAPI over HTTP https://docs.microsoft.com/zh-cn/Exchange/clients/mapi-over-http/map ...

  4. CSS边框长度控制

    以前需要边框长度比容器小一些时,我用div嵌套.后来发现伪类在实现这个效果时很方便,只需要一个div就够了,另外调整padding和margin都不会很麻烦. <div class=" ...

  5. 彻底关闭Firefox自动更新的方法

    自己最近在使用firefox进行自动化测试时,发现配置好的firefox总是会自动更新,主要是因为一些高版本的浏览器无法安装firepath,没有firepath的火狐浏览器使用起来总是有很多的不方便 ...

  6. Jarsigner签名使用

    转载请标明出处: http://www.cnblogs.com/why168888/p/6548544.html 本文出自:[Edwin博客园] 如何签名: jarsgner-verbose-keys ...

  7. iOS 内存泄漏监测自动化

    在 Android 上,Square 这家公司提供了非常有名的工具: leakcanary ,来帮助开发者们在日常开发过程中就能够发现内存泄漏.但在 iOS 上呢?在 Google 的时候,我发现了两 ...

  8. vue2.* 双向数据绑定 Vue事件介绍 以及Vue中的ref获取dom节点 04

    <template> <div id="app"> <!-- 双向数据绑定(必须在表单里面使用) m:model v:view mvvm:model改 ...

  9. 3、Spring Cloud - Eureka(构建服务端/客户端)

    3.1.Eureka简介 3.1.1.什么是 Eureka 和Consul.Zookeeper 类似, Eureka 是一个用于服务注册和发现的组件,最开始主要应用 于亚马逊公司旗下的云计算服务平台 ...

  10. concatenate

    concatenate函数的作用是对numpy数组或tensor进行拼接 >>> a = np.array([[1, 2], [3, 4]]) >>> b = np ...