vs2013 配置支持https的libcurl
2018-08-05 07:41:56来源:博客园 阅读 ()
需求:在vs2013上配置支持https协议的libcurl。
环境:win7(64位),vs2013
一、安装openssl:
需要先安装nasm和ActivePerl。
nasm需要手动配置环境变量。ActivePerl下载下来一路next安装就好了。
我安装openssl的时候是2018-08-03。不保证以后下面这个链接的方法依然有用。
我参考的是这个:https://blog.csdn.net/hpp24/article/details/54406424
亲测有用。只不过生成的include lib 等目录不对。居然在这目录C:\usr\local\ssl
需要注意的是,由于我的系统是64位的。我的vcvars32.bat在C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin这个目录中。
使用时需要指定头文件路径:
C:\usr\local\ssl\include
库的路径:
C:\usr\local\ssl\lib
同时要把libeay32.dll和ssleay32.dll拷贝到lib目录下。
使用时要把上面两个dll跟可执行文件放在一起。
#pragma comment(lib, "ssleay32.lib")
#pragma comment(lib, "libeay32.lib")
二、编译libcurl
直接去下载最新的。https://curl.haxx.se/download.html
我下载的是这个curl-7.61.0
解压,之后进入\curl-7.61.0\projects\Windows\VC12,打开curl-all.sln。里面有两个工程,
选择libcurl。配置选下面这个:
配置属性-》VC++目录-》包含目录 要指定openssl的头文件路径。
配置属性-》VC++目录-》库目录 要指定openssl的库目录。
然后直接编译就好了。
curl-7.61.0\build\Win32\VC12\DLL Release - DLL OpenSSL
这个目录下会生成 libcurl.lib libcurl.dll。这就大功告成了。
使用时的头文件路径是\curl-7.61.0\include。
三、测试
可以参考这个:https://curl.haxx.se/libcurl/c/https.html
下面上我的代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<curl/curl.h> #include<iostream> using namespace std; #pragma comment(lib, "libcurl.lib") #pragma comment(lib, "ssleay32.lib") #pragma comment(lib, "libeay32.lib") void test2() { curl_global_init(CURL_GLOBAL_DEFAULT); CURL *curl; CURLcode res; curl = curl_easy_init(); if (curl) { /* First set the URL that is about to receive our POST. This URL can just as well be a https:// URL if that is what should receive the data. */ curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com"); curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);//忽略证书检查 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); /* Now specify the POST data */ curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl"); /* Perform the request, res will get the return code */ res = curl_easy_perform(curl); if (res) { cout << "curl_easy_perform failed res = " << res << " ErrInfo:" << curl_easy_strerror(res) << endl; } else { cout << "curl_easy_perform success " << endl; } /* always cleanup */ curl_easy_cleanup(curl); } curl_global_cleanup(); } int main() { test2(); getchar(); return 0; }
要配置curl的头文件路径和库路径,和openssl的库路径。
直接运行就好了。
四、总结
1)编译openssl比较费时间,这一步一定要做,不要想偷懒,按步骤一步一步来就好了。
2)运行curl测试程序时需要链接libcurl和openssl的那两个库。特别注意要把库放到程序运行目录中去。我最开始怀疑自己是不是没编译到包含openssl的libcurl。一直在库目录上折腾,没有放到运行目录中去,折腾了将近一天。
3)查看自己编译的libcurl是否支持https,可以编译curl-all.sln中的curl项目,配置一样,要选openssl的。然后会编译出一个curl.exe。然后打开系统自带的cmd.exe,切换到生成curl.exe的目录,把两个openssl的库拷贝进来。执行红色框两个命令。出现下面的结果就表示你成功了。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Qt配置,载入html,Echart, 交互 2020-05-18
- windows7 + Qt(MSVC2017) + VS2019安装配置 2020-04-25
- VSCode 配置C++开发环境 2020-03-26
- Jetbrains CLion 安装及配置详解 2020-01-19
- QT解决中文乱码 2019-09-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash