• c练习总结


    undefined reference to `curl_easy_init'
    2010-07-23 21:08
    mmxcq@mmxcq-laptop:~/c/curl$ gcc -o q q.c 
    /tmp/ccyOh5HP.o: In function `main':
    q.c:(.text+0x103): undefined reference to `curl_easy_init'
    q.c:(.text+0x148): undefined reference to `curl_easy_setopt'
    q.c:(.text+0x16c): undefined reference to `curl_easy_setopt'
    q.c:(.text+0x190): undefined reference to `curl_easy_setopt'
    q.c:(.text+0x19c): undefined reference to `curl_easy_perform'
    q.c:(.text+0x1dc): undefined reference to `curl_easy_cleanup'
    collect2: ld returned 1 exit status

    gcc libcurl的时候出现这个 原来是没加curl路径  
    gcc -l curl  -o q q.c 就可以了
    将header和body分开存储到文件中
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
     
    #include <curl/curl.h>
     
    static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
    {
      int written = fwrite(ptr, size, nmemb, (FILE *)stream);
      return written;
    }
     
    int main(void)
    {
      CURL *curl_handle;
      static const char *headerfilename = "head.out";
      FILE *headerfile;
      static const char *bodyfilename = "body.out";
      FILE *bodyfile;
     
      curl_global_init(CURL_GLOBAL_ALL);
     
      /* init the curl session */ 
      curl_handle = curl_easy_init();
     
      /* set URL to get */ 
      curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.baidu.com");
     
      /* no progress meter please */ 
      curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1L);
     
      /* send all data to this function  */ 
      curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_data);
     
      /* open the files */ 
      headerfile = fopen(headerfilename,"w");
      if (headerfile == NULL) {
        curl_easy_cleanup(curl_handle);
        return -1;
      }
      bodyfile = fopen(bodyfilename,"w");
      if (bodyfile == NULL) {
        curl_easy_cleanup(curl_handle);
        return -1;
      }
     
      /* we want the headers to this file handle */ 
      curl_easy_setopt(curl_handle,   CURLOPT_WRITEHEADER, headerfile);
      curl_easy_setopt(curl_handle,   CURLOPT_WRITEDATA, bodyfile);
      /*
       * Notice here that if you want the actual data sent anywhere else but
       * stdout, you should consider using the CURLOPT_WRITEDATA option.  */ 
     
      /* get it! */ 
      curl_easy_perform(curl_handle);
     
      /* close the header file */ 
      fclose(headerfile);
      /* close the header file */ 
      fclose(bodyfile); 
      /* cleanup curl stuff */ 
      curl_easy_cleanup(curl_handle);
     
      return 0;
    }
  • 相关阅读:
    Ralasafe基于策略模型
    如何让Oracle表字段自动增长
    Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
    GridView的DataFormatString参考
    解决.NET连接Oracle数据库的一些问题(转)
    C# WinForm开发系列 DataGridView
    C# 插件式程序开发
    Oracle中“字符串中的字符大小写敏感处理方法”
    做一个项目,平时都用到哪些工具提高效率(中)
    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了(转)
  • 原文地址:https://www.cnblogs.com/lexus/p/2245363.html
Copyright © 2020-2023  润新知