libcurl的使用

来源:互联网 发布:易语言注入dll源码 编辑:程序博客网 时间:2024/05/20 05:30

1.libcurl  source code下载路径: http://curl.haxx.se/download.html 点curl-7.46.0.tar.gz下载

2.解压之后cd到curl-7.46.0目录下

(1)执行./configure --prefix=/home/curl

(2)make

(3)sudo make install

这样编译完成之后会在/home/curl下生成bin  include  lib  share四个文件夹,取include中的头文件和lib下的库文件即可编译自己的程序。

扩展:

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。
其中--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。
如果配置--prefix,如:
./configure --prefix=/usr/local/test
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。
用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

3.经过以上两部即完成source code的编译,得到了头文件和库文件,下面可以编写自己的程序了

创建curl.c文件内容如下:

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include "curl/curl.h"#include "curl/easy.h"size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream){    size_t written = fwrite(ptr, size, nmemb, stream);    return written;}int main(int argc, char *argv[]){    CURL *curl;    FILE *fp;    curl = curl_easy_init();    if((fp = fopen(argv[2], "w")) == NULL)    {        curl_easy_cleanup(curl);        return -1;    }    curl_easy_setopt(curl, CURLOPT_URL, argv[1]);    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);    curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);    curl_easy_perform(curl);    curl_easy_cleanup(curl);    fclose(fp);        return 0;}

gcc curl.c  -o saveweb -L/mnt/hgfs/share/curl/  libcurl.a  -lrt 
./saveweb  www.sina.com.cn sina.html

编译时报如下错误,所以加上-lrt

libcurl.a(libcurl_la-timeval.o): In function `curlx_tvnow':
timeval.c:(.text+0xa9): undefined reference to `clock_gettime'

参考:http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html

1 0
原创粉丝点击