网上找了一个关于获取htm网页的源码编译是提示:
fatal error: curl/curl.h: No such file or directory compilation terminated.
初步怀疑是少了curl的库,去百度搜了一下,库的名字为libcurl。使用 apt-get install libcurl3 后编译,还是提示找不到头文件。经过搜索,在Ubuntu下是需要安装 libcurl4-openssl-dev 。安装完成后 查看是否有 /usr/include/curl 这个目录,有说明安装成功。
第二次编译的时候,提示
/tmp/ccVvExfd.o: In function `main‘:
test.c:(.text+0xa1): undefined reference to `curl_easy_init‘
test.c:(.text+0xd4): undefined reference to `curl_easy_setopt‘
test.c:(.text+0xe0): undefined reference to `curl_easy_perform‘
test.c:(.text+0xf0): undefined reference to `curl_easy_cleanup‘
collect2: ld returned 1 exit status
估计是找不到库的引用,尝试在编译时,加上 -l 选项即可,例如:
gcc get_htm.c -o get_htm -lcrul
获取htm网页源码:
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
CURL *curl; //定义CURL类型的指针
CURLcode res; //定义CURLcode类型的变量,保存返回状态码
if(argc!=2)
{
printf("Usage : file <url>;/n");
exit(1);
}
curl = curl_easy_init(); //初始化一个CURL类型的指针
if(curl!=NULL)
{
//设置curl选项. 其中CURLOPT_URL是让用户指定url. argv[1]中存放的命令行传进来的网址
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
//调用curl_easy_perform 执行我们的设置.并进行相关的操作. 在这里只在屏幕上显示出来.
res = curl_easy_perform(curl);
//清除curl操作.
curl_easy_cleanup(curl);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-17 19:03:22