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
- libcurl的使用
- libcurl的使用
- libcurl的使用总结
- libcurl的使用
- libcurl的使用总结
- libcurl的简单使用
- libcurl的简单使用
- libcurl的使用
- libcurl库的使用
- libcurl的使用
- libcurl的简单使用
- libcurl库的使用
- libcurl库的使用
- libcurl库的使用
- libcurl的使用(转)
- libcurl的使用
- libcurl的使用
- libcurl库的使用
- View和XenDesktop到底谁更简单 Part II
- 使用iostat命令确认磁盘IO很差
- nodejs 使用inspector 调试
- 2015年末小结
- git 使用学习笔记
- libcurl的使用
- Linux 下安装配置 JDK
- 年终_01
- 年终总结
- Java之旅
- JAVA Linux 排查CPU 过高的方法
- Same Tree
- VIM相关问题
- 跨年快乐