Step 1,下载源码(curl - Download),下载之后解压(文件夹路径别有中文也不要有空格),我的路径是: D:\dev\net\libcurlDev\res\curl-7.83.1

Step 2,编译。

方法 1,可以使用 cmake直接编译或者用cmake gui生成vs工程再编译。

方法 2,使用 VS 对应平台的 Native Tools Cmd 命令行编译。这里说一下此方法。

A. VS Native Tools Cmd如下图:

B.(可选先执行curl-7.83.1\buildconf.bat)。以x86 Native Tools Command 命令行窗口为例。在这个命令行窗口里先进入到 curl-7.83.1\winbuild\ 目录下,然后执行编译。

编译Debug lib命令:nmake /f Makefile.vc mode=static VC=17 MACHINE=x86 DEBUG=yes

编译Release lib命令:nmake /f Makefile.vc mode=static VC=17 MACHINE=x86 DEBUG=no

mode=static,编译静态库。mode=dll,编译动态库

如下图:

编译好之后如下图:

如果要编译x64版本,需要在 x64 Native Tools Command 命令行窗口中执行命令。并且MACHINE=x64

以静态库的使用为例,使用的时候需要在连接器输入的附加依赖项中加入如下这些lib:

libcurl_a_debug.lib
Ws2_32.lib
Wldap32.lib
winmm.lib
Crypt32.lib
Normaliz.lib

Step 4,测试代码如下:


#define CURL_STATICLIB
#define HTTP_ONLY
/** 加上这两个宏是保证正确编译静态库的代码,防止出现 “LNK2019   无法解析的外部符号 __imp__curl_easy_strerror,函数 _main 中引用了该符号” 这类错误* 也可以在 项目属性 -> C/C++ -> 预处理器 -> 预处理器定义 这里添加进来*/
#include <iostream>
#include <curl/curl.h>
int main()
{std::cout << "Hello curl static lib!\n";CURL* curl = nullptr;CURLcode res;curl = curl_easy_init();if (curl != nullptr) {curl_easy_setopt(curl, CURLOPT_URL, "https://github.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 EXIT_SUCCESS;
}

VS2022编译和使用curl网络库相关推荐

  1. muduo网络库:18---muduo简介之(muduo库的由来、编译安装、目录结构、代码结构、线程模型)

    一.由来 2010年3月陈硕先生写了一篇<学之者生,用之者死--ACE历史与简评>(文章参阅:https://blog.csdn.net/Solstice/article/details/ ...

  2. 编译curl的动态库以及curl动态库的使用

    文章目录 1.编译curl静态库 2.curl动态库的编译 1.直接编译curl源码 2.用户生成自定义curl动态库 2.1.用户根据自己的需要,列出需要使用的接口 2.2 实现上述的接口 2.3 ...

  3. curl静态库的编译与使用

    1.静态库的编译 参考文档: https://www.cnblogs.com/yome/p/5340685.html https://www.cnblogs.com/yome/p/5340685.ht ...

  4. VS2022编译libpng库

    本文将使用VS2022编译libpng,操作系统为Windows10.官网地址:链接 1. 下载源代码 由于 libpng 依赖 zlib ,因此需要下载 libpng 和 zlib 的源代码. li ...

  5. C++ 第三方常用网络库

    From:https://www.cnblogs.com/aitantianderuangutou/p/11416902.html (1) ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库 ...

  6. 谷歌开源张量网络库TensorNetwork,GPU处理提升100倍!

    编译 |  琥珀 出品 | AI科技大本营(ID:rgznai100) 世界上许多最严峻的科学挑战,如开发高温超导体和理解时空的本质,都涉及处理量子系统的复杂性.然而,这些系统中量子态的数量程指数级增 ...

  7. 开源免费的C/C++网络库(c/c++ sockets library)

    (1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html (2)Asio Asio基于Boo ...

  8. Qt,编译libcurl并且导入到库

    在MInGW环境下编译和使用libcurl静态库 libcurl 7.21以后的版本在Windows下的编译比较简单,自带了MinGW和VC环境的Makefile文件,首先去Curl官网下载源代码:h ...

  9. 网易云音乐网络库跨平台化实践

    导读: 2021年10月21日,「QCon 全球软件开发大会」在上海举办,网易智企技术 VP 陈功作为出品人发起了「AI 时代下的融合通信技术」专场,邀请到网易云信.网易音视频实验室.网易云音乐的技术 ...

最新文章

  1. oracle 语句 在线测试,2017年Oracle数据库基础测试答案.doc
  2. 命令+mybatis-generator插件自己主动生成Mapper映射文件
  3. python弱类型好处_JavaScript弱类型语言的优缺点有哪些
  4. user32.dll 函数说明小结
  5. IOS开发之——屏幕适配-AutoLayout代码实现(03)
  6. pclint vc2012配置
  7. Ubuntu卸载Anaconda步骤
  8. Visual Studio中C++关于Unicode字符集和多字节字符集
  9. 如何把握银行信息科技风险管理的“度”?
  10. Win10不相邻的磁盘怎么合并,一学就会
  11. Unity 鼠标进入UI控件,显示控件名称
  12. python怎么读音发音英语-django的英文读法是什么
  13. 视觉SLAM十四讲CH9代码解析及课后习题详解
  14. Java解决:有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月的时候又生了了一对兔子。假设兔子都没有死亡,求第二年的总对数 。
  15. [SPOJ IGAME Interesting Game]Nim 博弈+数位DP
  16. 开学季好物怎么选,学生党必备的几款好物分享
  17. 计算机专业海报排版设计,我研究了2000张大神海报,终于总结出这个排版技巧...
  18. 万字报告拆解:Web3 浪潮风靡,NFT 找到新增长点,AIGC 如火如荼
  19. .NET基础篇:解决VS2017引用无效问题。
  20. 修改个人资料和头像的协议数据包

热门文章

  1. FastReport.NET单行多标签打印
  2. H5俄罗斯方块游戏开发-李强强-专题视频课程
  3. FRM模型二:时间序列建模
  4. 【转】mysql各版本timestamp默认值
  5. 美国12个最酷创业公司总部
  6. 神经网络学习笔记6——生成式AI绘画背后的的GAN与Diffusion初解
  7. 翻硬币—两种方法 dfs 贪心
  8. 牛客练习赛 4 A-Laptop (线段树,思维/GTMD普通前缀和也能求)
  9. 【好物安利】给大家安利一款好用的浏览器插件-iTab
  10. Fabric2.0部署学习进阶教程系列博文