企业网站用什么系统好,做电商一个月能挣多少钱,安徽网站线上开发公司,河南监理建设协会网站文章目录 curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION概述笔记END curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION
概述
在看一个开源工程, 里面用到了curl和openssl, 但是工程使用vcpkg来管理的包, 用CMake来编译 依赖太多了, win10 编译选项为 vs2019 x64/Win32(或者Ninja)… 文章目录 curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION概述笔记END curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION
概述
在看一个开源工程, 里面用到了curl和openssl, 但是工程使用vcpkg来管理的包, 用CMake来编译 依赖太多了, win10 编译选项为 vs2019 x64/Win32(或者Ninja)都编译不过 应该是作者给的编译脚本有问题.
openssl我前面实验都编译好了. 现在就差一个curl. 看了curl的编译依赖项(看了几个依赖项的说明, 依赖项本身还有依赖项…), 挺吓人的. 尝试看看用curl官方编译好的curl(dll, lib)看看能用不?
下载官方编译好的curl, 建立了一个vs2019控制台工程, 设置好curl库和头的位置. 将官方demo(D:\my_dev_depend\curl-8.6.0_1-win64-mingw\docs\examples*.c)贴到工程中试试. 试了2个, 都出现了报错, 错误码为 CURLE_PEER_FAILED_VERIFICATION 查了一下, 好像要设置不校验相关选项才行. 咋设置和这个错误码相关的选项呢? 在头文件中猜读/实验了几次, 搞定了. 现在就可以直接用官方编译好的curl, 不用去自己折腾编译工程了. 开源工程依赖多的时候, 自己编译真不好搞定.
这些作者为啥不将依赖项都编译好(或者告诉使用者, 这些依赖项是否有官方编译好的版本), 放在工程目录中, 让使用者直接关心工程本身, 这样会友好很多.
笔记
建立的工程为 vs2019 console x64 debug 下载的官方编译的包为 curl-8.6.0_1-win64-mingw.zip
/*! \file curl_v8d6d0_prj_template.cpp
*/#include iostream// 将工程调试的目录设置为 D:\my_dev_depend\curl-8.6.0_1-win64-mingw\bin// 将工程的库目录设置为 D:\my_dev_depend\curl-8.6.0_1-win64-mingw\lib
#pragma comment(lib, libcurl.dll.a)/* DESC* GET a range only of a HTTP resource* /DESC*/
// 将工程的头目录设置为 D:\my_dev_depend\curl-8.6.0_1-win64-mingw\include
#include curl/curl.hint main(void)
{CURL* curl;CURLcode res;curl curl_easy_init();if (curl) {curl_easy_setopt(curl, CURLOPT_URL, https://www.example.com/);curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); // disable verify for CURLOPT_SSL_VERIFYPEERres curl_easy_perform(curl); // CURLE_PEER_FAILED_VERIFICATIONif (CURLE_OK res) {char* ct;/* ask for the content-type */res curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, ct);if ((CURLE_OK res) ct)printf(We received Content-Type: %s\n, ct);}/* always cleanup */curl_easy_cleanup(curl);}return 0;
}
END