• 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;
    }
  • 相关阅读:
    DELL、HP、IBM X86服务器命名规则
    容灾,热备,集群等区别
    HDS(日立)AMS2000系列存储管理配置方法
    KBMMW 4.90.00 发布
    delphi 10 seattle 安卓服务开发(三)
    delphi 10 seattle 安卓服务开发(二)
    delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题
    Android 中的 Service 全面总结(转载)
    KBMMW 4.84.00 发布
    delphi 10 seattle 安卓服务开发(一)
  • 原文地址:https://www.cnblogs.com/lexus/p/2245363.html
Copyright © 2020-2023  润新知