编译

1.下载地址:

curl downloads

我下载的是7.61.0

2.编译:

使用的是:VS2019 x64 本机工具命令提示,当然如果想编译成X86的库,可以选择VS2013 x86 本机工具命令提示或者VS2019 x64 兼容工具命令提示。
打开VS2019 x64 本机工具命令提示的快捷方式,进入libcurl源代码目录,进入winbuild下

静态库debug

nmake /f Makefile.vc mode=static VC=16 DEBUG=yes MACHINE=x64

静态库release

nmake /f Makefile.vc mode=static VC=16  MACHINE=x64

动态库debug

nmake /f Makefile.vc mode=dll VC=16 DEBUG=yes MACHINE=x64

动态库release

nmake /f Makefile.vc mode=dll VC=16 MACHINE=x64

编译完成 默认会在源代码的顶层目录下创建builds文件夹,用于存放编译生成的文件。

如果不想要编译SSPI,IPV6,IDN,WINSSL,PDB,可以参考BUILD.WINDOWS.txt使用下面指令编译

nmake /f Makefile.vc mode=dll VC=16  MACHINE=x64 ENABLE_SSPI=no ENABLE_IPV6=no ENABLE_IDN=no ENABLE_WINSSL=no  GEN_PDB=no

编译完成如下:

libcurl-vc16-x64-release-dll是编译最终头文件、库文件、可执行程序所在目录,include是curl库的头文件存放目录;lib库是库文件所在目录,里面有libcurl.lib文件;bin目录是生成的curl.exe可执行文件和libcurl.dll的dll文件所在目录

注意:

1.动态编译的时候也会生成一个.lib文件,这个文件和静态编译的.lib并不一样,动态编译生成的.lib非常小里面,里面是被调用时编译用到的一些链接,真正运行时执行的是函数是在.dll里面,静态编译出的.lib是完整的库。

使用

下面例子是动态编译的库调用方式

1.创建一个demo目录

创建include文件夹,把前面编译的头文件curl复制进去

创建lib文件夹,把前面编译的libcurl.lib复制进去

创建src文件夹,里面创建一个demo.cpp文件

demo.cpp

#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>int main(int argc, char *argv[])
{CURL *curl;             //定义CURL类型的指针CURLcode res;           //定义CURLcode类型的变量,保存返回状态码char url[] = "www.baidu.com";curl = curl_easy_init();        //初始化一个CURL类型的指针if (curl != NULL){//设置curl选项. 其中CURLOPT_URL是让用户指 定url. url中存放的是网址curl_easy_setopt(curl, CURLOPT_URL, url);//调用curl_easy_perform 执行我们的设置.并进行相关的操作. 在这 里只在屏幕上显示出来.res = curl_easy_perform(curl);//清除curl操作.curl_easy_cleanup(curl);}return 0;
}

创建CMakelist.txt

cmake_minimum_required(VERSION 3.0.0)
project(test)set(CURL_DIR D:/workspace/demo)include_directories("include/")add_executable(testsrc/demo.cpp)set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)target_compile_features(test PRIVATE cxx_std_14)
target_link_libraries(test "${CURL_DIR}/lib/libcurl.lib")

2.编译:

在根目录下创建一个build目录,运行

cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..

然后执行nmake进行编译完成,之后会在build目录下生成一个test.exe文件

将上面编译的libcurl.dll复制到build目录下,运行test.exe即可

Visual Studio2019使用nmake编译调用libcurl库相关推荐

  1. opensll、libcurl库安装的使用,树莓派CSI摄像头的配置,树莓派调用智能API平台实现人脸识别、树莓派配置中文环境

    接着上一节人工智能翔云平台介绍: 人工智能OCR识别: OCR 是英文Optical Character Recognition的缩写,意思是光学字符识别,也可简单地称为文字识别,是文字自动输入的一种 ...

  2. 在Visual Studio 2010 C++ 下调用Winpcap 4.1.3库的方法

    先下载Winpcap 4.1.3的开发包WpdPack 4.1.2 下载地址:http://www.winpcap.org/devel.htm (4.1.2版兼容4.1.3版) Visual Stud ...

  3. VC++调用libcurl开源库实现发送邮件的功能(附源码)

    目录 1.为啥要选择libcurl库去实现邮件的发送 2.调用libcurl库的API接口实现邮件发送

  4. libcurl库的安装和使用

    libcurl简介: libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl同样支持H ...

  5. Linux基础之Libcurl库之HTTPS协议实现人脸识别

    目录 一.前言 二.编译openssl支持libcurl的https访问 三.base64编码 四.封装base64编码函数并人脸识别成功 五.车牌识别 六.总结 一.前言 上一篇文章我们调用libc ...

  6. vs2017 编译php扩展,vs2017编译和使用libcurl库

    libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器). libcurl当前支持http, ht ...

  7. 【C 语言】动态库封装与设计 ( Windows 动态库简介 | Visual Studio 调用动态库 )

    文章目录 一.Windows 动态库简介 二.Visual Studio 调用动态库 一.Windows 动态库简介 在 C:\Windows\System32 目录中 , 存放着 Windows 中 ...

  8. 使用 Visual Studio 编译 wget 为库文件

    添加代码与预编译指令与上一篇使用 Visual Studio 编译 wget 为可执行文件一致,区别在于这回建的是静态库工程(编译为动态库过程类似:)) 从wget的main函数开始读下来,发现问题不 ...

  9. Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 libcurl是什么? libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当 ...

  10. Intel Visual Fortran Compiler 11调用lapack库实现并行多处理计算

    Intel Visual Fortran Compiler 11调用lapack库实现并行多处理计算 采用fortran进行数值计算的朋友们都应该听说过大名鼎鼎的lapack库,我就不多做介绍了,在此 ...

最新文章

  1. CVPR2020最新论文扫描盘点(下)
  2. bash 的进站欢迎提示
  3. 汉诺塔V - ACM解决方法
  4. VxWorks下几种定时延时方法的小结
  5. OpenStack:heat安装使用-Openstack Heat try-out
  6. Bailian2952 循环数【数学】
  7. Ubuntu source insight3稳定性
  8. 多项目同时进行 如何高效协作?
  9. [转载] 中华典故故事(孙刚)——19 万岁
  10. 沉痛悼念游戏开发技术专家毛星云
  11. ThinkPad T430i黑苹果Yosemite 10.10.3成功显卡驱动
  12. 20211104 为什么相似矩阵的迹相同
  13. AI吻合度100%,某业余6段棋手吊打围甲7段,疑似AI附体-0
  14. “远端www服务支持TRACE请求“验证及修复jetty,非框架,内嵌版本
  15. 计算机考研中的编号,考研科目前边的编号是什么意思
  16. 牛客2019跨年AK场 E 【大】约数 (两个数的全部公约数)
  17. 论文笔记+模型实现TransNets: Learning to Transform for Recommendation
  18. 六方ZnS包裹碳纳米管复合粉体/PbS纳米晶原位包裹碳纳米管的复合材料/壳聚糖包裹的多壁碳纳米管
  19. *PAT_甲级_1072 Gas Station (30point(s)) (C++)【Dijkstra/字符串截取/与数字相互转换】
  20. 计算机病毒实验教程pdf,计算机病毒实验手册4-5-9-10-8-v40.pdf

热门文章

  1. 愉快地在64位系统下运行汇编
  2. EnableQ 安装
  3. 怎样将自己学到的东西发布到博客
  4. 《无敌大冒险》技术支持
  5. 西瓜书重温(七): 贝叶斯分类器(手推+代码demo)
  6. vb.net使用hook技术之键盘鼠标钩子
  7. 3dmax人物表情动画、骨骼动画、半透明材质导出FBX文件、导入unity的方法
  8. python实现猜数字游戏
  9. firefox的webmail notifier网易邮箱设置
  10. SQL语句:查询语句及多表查询典型例子