Visual Studio2019使用nmake编译调用libcurl库
编译
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库相关推荐
- opensll、libcurl库安装的使用,树莓派CSI摄像头的配置,树莓派调用智能API平台实现人脸识别、树莓派配置中文环境
接着上一节人工智能翔云平台介绍: 人工智能OCR识别: OCR 是英文Optical Character Recognition的缩写,意思是光学字符识别,也可简单地称为文字识别,是文字自动输入的一种 ...
- 在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 ...
- VC++调用libcurl开源库实现发送邮件的功能(附源码)
目录 1.为啥要选择libcurl库去实现邮件的发送 2.调用libcurl库的API接口实现邮件发送
- libcurl库的安装和使用
libcurl简介: libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl同样支持H ...
- Linux基础之Libcurl库之HTTPS协议实现人脸识别
目录 一.前言 二.编译openssl支持libcurl的https访问 三.base64编码 四.封装base64编码函数并人脸识别成功 五.车牌识别 六.总结 一.前言 上一篇文章我们调用libc ...
- vs2017 编译php扩展,vs2017编译和使用libcurl库
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器). libcurl当前支持http, ht ...
- 【C 语言】动态库封装与设计 ( Windows 动态库简介 | Visual Studio 调用动态库 )
文章目录 一.Windows 动态库简介 二.Visual Studio 调用动态库 一.Windows 动态库简介 在 C:\Windows\System32 目录中 , 存放着 Windows 中 ...
- 使用 Visual Studio 编译 wget 为库文件
添加代码与预编译指令与上一篇使用 Visual Studio 编译 wget 为可执行文件一致,区别在于这回建的是静态库工程(编译为动态库过程类似:)) 从wget的main函数开始读下来,发现问题不 ...
- Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 libcurl是什么? libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当 ...
- Intel Visual Fortran Compiler 11调用lapack库实现并行多处理计算
Intel Visual Fortran Compiler 11调用lapack库实现并行多处理计算 采用fortran进行数值计算的朋友们都应该听说过大名鼎鼎的lapack库,我就不多做介绍了,在此 ...
最新文章
- CVPR2020最新论文扫描盘点(下)
- bash 的进站欢迎提示
- 汉诺塔V - ACM解决方法
- VxWorks下几种定时延时方法的小结
- OpenStack:heat安装使用-Openstack Heat try-out
- Bailian2952 循环数【数学】
- Ubuntu source insight3稳定性
- 多项目同时进行 如何高效协作?
- [转载] 中华典故故事(孙刚)——19 万岁
- 沉痛悼念游戏开发技术专家毛星云
- ThinkPad T430i黑苹果Yosemite 10.10.3成功显卡驱动
- 20211104 为什么相似矩阵的迹相同
- AI吻合度100%,某业余6段棋手吊打围甲7段,疑似AI附体-0
- “远端www服务支持TRACE请求“验证及修复jetty,非框架,内嵌版本
- 计算机考研中的编号,考研科目前边的编号是什么意思
- 牛客2019跨年AK场 E	【大】约数 (两个数的全部公约数)
- 论文笔记+模型实现TransNets: Learning to Transform for Recommendation
- 六方ZnS包裹碳纳米管复合粉体/PbS纳米晶原位包裹碳纳米管的复合材料/壳聚糖包裹的多壁碳纳米管
- *PAT_甲级_1072 Gas Station (30point(s)) (C++)【Dijkstra/字符串截取/与数字相互转换】
- 计算机病毒实验教程pdf,计算机病毒实验手册4-5-9-10-8-v40.pdf