zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    集合框架(三)
    集合框架(二)
    集合框架(一)
    第九章 持有你的对象
    UML类图
    用a标签设置锚点
    设计原则
    第八章 接口与内部类
    装配Bean
    第33条:用EnumMap代替序数索引
  • 原文地址:https://www.cnblogs.com/lexus/p/2245363.html
Copyright © 2011-2022 走看看