您的位置:首页 > 其它

Visual Studio 2010 环境下 配置LibCurl with SSL 方法

2012-02-15 23:41 435 查看
这两天没事研究各种互联网协议,开始用原始socket自己封装通讯类,但是太麻烦,用ACE,又太重量级,最后改用cURL,比较适合大众使用。

Libcurl过去只听过,没用过,只知道支持各种网络应用层通讯协议,并且用c语言实现,效率很高,使用又很方便。去了趟官网,发现很多版本的库文件,可见开发者真的花了很大功夫去维护,并且基于网络数据传输的无差别性,该函数库几乎可以在所有操作系统上使用,真是一个优秀的函数库。

这个函数库你可以选择自己编译,也可以选择使用现成的函数库,在官网上,有现成的函数库可以下载,全在http://curl.haxx.se/download.html 这个页面上,由于我编译环境是visual studio 2010,所以我选择下载Win32 - MSVC选项的函数库,下载解压之后,文件夹里有各种不同条件下生成的库和编译需要的include头文件。在配置完环境后,我简单写代码测试了下,就是用一个简单的http反射来测试函数库是否可以工作,但是频繁出错,compile的时候并没有错,但是一运行,就会出现环境出错之类的提示,网上搜了下,说是visual
c++ IDE环境的问题,相必是vc6.0和vs2010之间差别导致的,此类错误遇到的不在少数了,最好方法就是自己编译函数库。

Libcurl的源码在上面那个链接也有下载,下载之后,在根目录下有个vc6curl.dsw文件,打开这个文件,VS 2010会提示转换,一路确定即可,转换之后编译,生成的函数库用http反射测试下,果然工作正常了,可见确实是编译器的问题,用https测试了下,出错了,debug设置断点看看返回了什么,居然是unsupported protocol,可见默认编译的是无SSL支持的,那么怎么让编译支持SSL呢?

最后再邮件列表里找到了答案,libcurl编译其实有很多预处理宏,其中就有USE_OPENSSL和USE_SSLEAY,在预处理选项里添加这两个宏之后,编译会自动检测SSL支持,这时候只要配置好头文件和openSSL库文件的位置即可编译出具有ssl功能的libcurl,除了这两个宏,我还添加了CURL_STATICLIB和CURL_DISABLE_LDAP,前者是编译静态库,后者是为了禁用ldap功能。

用上面方法编译后,https测试正常,完全支持SSL功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: