[编程菜谱]如何在Ubuntu下编译链接异步多路下载的curl例子

简介上回书我们说到一个巨简单的curl例子,这次我们步子稍微迈大点,希望不要扯到那啥。重点是异步多路,也就是说发挥到OS的多核和异步IO的综合属性,把性能压榨到极致,本想自己拼一个例子,还是G了一下万能的互联网,果然有牛人已经先行一步了,欣欣然学习并编译链接之,便有了如下菜谱。 


 食材

  • Ubuntu 12.04 64-bit 安装了基本的gcc、g++、make,恕不赘述
  • multi-gcd.c 文如其名,在官网讨论组里扒出的好货,代码稍显复杂,但是异步、多核写到这么200多行,已经不错了,是个好的解剖标本

步骤

1. 首先要安装除curl外的一些别的开发环境,因为这个例子用了不少高级的东东

sudo apt-get install libcurl4-openssl-dev libdispatch-dev clang

2. 编译链接这个例子,因为用到了block语法,所以要用clang和-fblocks编译开关,这个可能是重点吧

clang ./multi-gcd.c -lcurl -ldispatch -lBlocksRuntime -fblocks -o multi-gcd

3. 运行吧,将下载网页的内容到缺省文件中,并可以在参数中连续写多个url。速度不是盖的

./multi-gcd www.qq.com

小贴士

安装了多余的包,可以彻底除掉,但是目前要记住你那个包名,比如,曾经安装过libcurl3的包,想卸载掉只需要

sudo apt-get remove libcurl3
posted @ 2014-07-11 22:52  子易木  阅读(195)  评论(0编辑  收藏  举报