本人使用的就是编译的是不包含openssl以及libssh2的
(
libcurl 默认下并不支持 SFTP ,支持的话需要在编译的时候添加 libssh2 依赖项,
而libssh2 又依赖于 openssl 和 zlib
)
下载源码并且编译
这次编译选择的是当前(2023年6月26日)最新版本编译
编译平台: Windows10
IDE:VS2010
1.下载一个 curl的源码库 curl-8.1.2 https://curl.se/download.html
2.在projects文件夹下
找到vc10,打开libcurl工程,因为要生成curl.lib静态库
3.选择配置 LIB Debug Win32 ,根据你要使用的程序的配置来,如果要编译Release版本的就选择LIBRelease,因为运行时库要用一致的。
4.修改一下预定义宏
去掉这两个
USE_OPENSSL
USE_LIBSSH2
5.点击Build,就编译成功了。
然后找到
curl-8.1.2\build\Win32\VC10\LIB Debug (或者Release下面)
下面就有个编译好的 libcurld.lib 库了。
应用
把这个库应用到你自己的工程中,也是win32 和 Debug的。
1.把之前下载的源码下的include文件夹下的curl下的头文件移动到自己工程下,以及上面生成的lib库
2.在IDE中设置好库目录,输入库名称
3.加上一个宏定义 属性配置中的预处理器
BUILDING_LIBCURL
HTTP_ONLY
4.输入库那里还需要加上其他的(思路是参考源码中的工程中做了什么样的设置)
ws2_32.lib
wldap32.lib
linux下的编译和使用
linux静态编译libcurl出.a文件,连接到自己的项目中 - 知乎
curl的一些其他问题
0)如何使用
C++进行POST请求用法介绍_笔记大全_设计学院C++使用curl发送post请求_c++ curl_Keras深度学习的博客-CSDN博客
1)查看各个路径的时间:
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_nslookup:%{time_namelookup}\ntime_total: %{time_total}\n" "xxxx.com"
2)如果curl的时间超过1s,可以看看这个追踪一下哪一步时间久了
strace -tt 查看哪个时间段变长了
如果设置超时时间不生效
可能是域名解析的时候很长
3)
CURLOPT_DNS_USE_GLOBAL_CACHE启用时会启用一个全局的DNS缓存,此项为线程安全的,并且默认启用。
CURLOPT_DNS_CACHE_TIMEOUT设置在内存中保存DNS
系统也可以开启缓存
4)
多线程问题文档
libcurl - programming tutorial
libcurl使用注意事项(多线程)-阿鸾44-ChinaUnix博客
参考文章
【C++】VS2013下CURL编译及使用示例_51CTO博客_linux编译c++程序
curl_multi异步高并发服务实现
https://www.cnblogs.com/bclshuai/p/15790038.html
5)
使用了 curl_slist_append 申请了资源
记得使用 curl_slist_free_all 去释放资源
否则会导致 内存泄漏
http测试
https://blog.csdn.net/m0_58656539/article/details/127321217
openssl官网:
https://www.openssl.org/source/
直接下载源码编译
或者
直接下载安装包安装完之后即可 https://slproweb.com/products/Win32OpenSSL.html
DLL调用
分成静态调用和动态调用
静态调用就是启动的时候就把DLL加载到进程空间中,在链接的时候就做好各种设置。
动态调用就是运行时调用。
https://blog.csdn.net/Sakuya__/article/details/105403172
C++如何引用openssl库调用md5算法。
1.
下载 32位版本的 openssl1.1.1u 不是light的 https://slproweb.com/products/Win32OpenSSL.html
安装好以后里面直接有dll 不用重新编译
2. 把头文件,和lib 静态库文件都拷贝过去
把cypro.lib 都加进去 文件和输入链接配置加上
把cypro.dll 加入到工程中去
https://blog.csdn.net/w1820020635/article/details/88350680?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-88350680-blog-128629547.235%5Ev38%5Epc_relevant_sort_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-88350680-blog-128629547.235%5Ev38%5Epc_relevant_sort_base1&utm_relevant_index=6