免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11490 | 回复: 7
打印 上一主题 下一主题

Curl和C-Ares编译 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-05 14:28 |只看该作者 |倒序浏览
本帖最后由 river_dream 于 2011-08-05 17:34 编辑

各位大虾好,小菜遇到了一下问题,在此先谢谢了。
  1、我使用Curl连接网站,希望可以异步获取信息,所以我想使用多线程,通过查找资料,在官方中有两种方式,一种是开启多线程,另一种是使用了类似于select机制的multi的方法,我还不清楚这两种方法的区别。
  2、使Curl异步需要使用C-Ares来解决,但是,我不知道怎么样在编译的时候吧C-Ares编译到Curl中,我看了README.ares文件,并在http://blog.gmane.org/gmane.comp.web.curl.library/month=20100101网站中找到了一下代码:

  1. #include <curl/curl.h>
  2. int main()
  3. {
  4. curl_version_info_data*info=curl_version_info(CURLVERSION_NOW);
  5. if (info->features&CURL_VERSION_ASYNCHDNS) {
  6.    printf( "ares enabled\n");
  7. } else {
  8.    printf( "ares NOT enabled\n");
  9. }
  10. return 0;
  11. }
复制代码
通过这段代码的测试发现,我还是没有编译成功。
  所以请大家给点建议和解决方法,小菜再次谢谢各位~~

下面是./configure  --enable-ares

  1. curl version:    7.21.7
  2.   Host setup:      i686-pc-linux-gnu
  3.   Install prefix:  /usr/local
  4.   Compiler:        gcc
  5.   SSL support:     enabled (OpenSSL)
  6.   SSH support:     no      (--with-libssh2)
  7.   zlib support:    enabled
  8.   krb4 support:    no      (--with-krb4*)
  9.   GSSAPI support:  no      (--with-gssapi)
  10.   SPNEGO support:  no      (--with-spnego)
  11.   TLS-SRP support: no      (--enable-tls-srp)
  12.   resolver:        c-ares
  13.   ipv6 support:    enabled
  14.   IDN support:     enabled
  15.   Build libcurl:   Shared=yes, Static=yes
  16.   Built-in manual: enabled
  17.   Verbose errors:  enabled (--disable-verbose)
  18.   SSPI support:    no      (--enable-sspi)
  19.   ca cert bundle:  /etc/pki/tls/certs/ca-bundle.crt
  20.   ca cert path:    no
  21.   LDAP support:    enabled (OpenLDAP)
  22.   LDAPS support:   enabled
  23.   RTSP support:    enabled
  24.   RTMP support:    no      (--with-librtmp)
  25.   Protocols:       DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTSP SMTP SMTPS TELNET TFTP
复制代码
还需要什么详细信息我尽量提供,谢谢各位~~

我Make Curl 在最后提示了一些问题,如下:

  1. Making all in include

  2. make[1]: Entering directory `/home/curl-7.21.7/include'

  3. Making all in curl

  4. make[2]: Entering directory `/home/curl-7.21.7/include/curl'

  5. make  all-am

  6. make[3]: Entering directory `/home/curl-7.21.7/include/curl'

  7. make[3]: Nothing to be done for `all-am'.

  8. make[3]: Leaving directory `/home/curl-7.21.7/include/curl'

  9. make[2]: Leaving directory `/home/curl-7.21.7/include/curl'

  10. make[2]: Entering directory `/home/curl-7.21.7/include'

  11. make[2]: Nothing to be done for `all-am'.

  12. make[2]: Leaving directory `/home/curl-7.21.7/include'

  13. make[1]: Leaving directory `/home/curl-7.21.7/include'

  14. make[1]: Entering directory `/home/curl-7.21.7'

  15. make[1]: Nothing to be done for `all-am'.

  16. make[1]: Leaving directory `/home/curl-7.21.7'
复制代码
提示为: Nothing to be done for `all-am'.

论坛徽章:
0
2 [报告]
发表于 2011-08-08 08:03 |只看该作者
我的帖子沉了,我要顶起~~

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
3 [报告]
发表于 2011-08-08 09:37 |只看该作者
哥哥,你是不是看错了……ares的含义是异步地进行DNS解析……你就算用了ares,也不代表可以全部地异步啊……

论坛徽章:
0
4 [报告]
发表于 2011-08-08 10:00 |只看该作者
回复 3# starwing83


    您好,首先非常感谢您的回复,只要可以异步的解析DNS就可以了,他是否支持全部的异步,我想这个是后话,因为,我现在遇到很让我头疼的问题就是编译不成功,不能把ares集成到Curl中去,若您有好的建议或者方法,还请您多提醒一下我。
     这个贴子挂了好长时间了,您是第一个回复的,小菜非常的感谢~~

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
5 [报告]
发表于 2011-08-08 13:43 |只看该作者
回复 4# river_dream


    对这个不是很熟。开源的软件一般是先configure,看起来你是成功了。而且编译也成功了,问题在于你想开启ASYNC是吧?问题是,这个跟c-ares是没有关系的,你如果检测ares支持应该是能检测出来,至于ASYNC,我建议你检查一下libcurl的源代码,看看在什么条件满足的情况下,会给这个标志位,比如说要检测到epoll啊,或者要检测到pthread啊什么的。

论坛徽章:
0
6 [报告]
发表于 2011-08-08 14:10 |只看该作者
回复 5# starwing83

我从这个资料(http://gcoder.blogbus.com/logs/54871550.html)发现Curl的异步和ares是有关系的,包括在官方也看到了同样的说法,用ares进行异步的DNS解析,在Curl的编译选项中也有是否启用cares的选项,我启用了,但还是不行,不知道什么地方设置或者是配置有问题。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
7 [报告]
发表于 2011-08-08 14:43 |只看该作者
回复 6# river_dream


    有关系,不代表是因果的关系………………唉算了,有时间给你看看源代码好了,最近忙。

论坛徽章:
0
8 [报告]
发表于 2011-08-08 20:29 |只看该作者
我只是想解决临时的问题,以后我也不会用这个东西的。只是想先开几个线程而不阻塞而已。能给解决吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP