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
今天的文章libcurl的使用分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8727.html