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;
    }
  • 相关阅读:
    .net 存储过程中的 output参数取值问题
    【从零开始学Servlet笔记】Servelet入门
    【从零开始学Servlet笔记】Web资源
    【从零开始学Servlet笔记】Http协议
    【从零开始学Mybatis笔记】SqlMapConfig.xml配置文件
    【从零开始学Mybatis笔记】Dao开发方法
    【从零开始学Mybatis笔记】Mybatis入门
    【从零开始学SpringMVC笔记】SpringMVC进阶
    【从零开始学SpringMVC笔记】SpringMVC与struts2不同
    【从零开始学SpringMVC笔记】参数绑定
  • 原文地址:https://www.cnblogs.com/lexus/p/2245363.html
Copyright © 2011-2022 走看看