cURL / Mailing Lists / curl-library / Single Mail

curl-library

Libcurl Install and Use Issues

From: T kyer <xdtrq_at_ananzi.co.za>
Date: Mon, 20 Jun 2005 01:41:12 +0200

Gentlemen,

Great job with curl! Unfortunately I have been unable to
enjoy it's benefits. First, I'm confused as to what is the
source code for libcurl ONLY?

I have been unable to install the libcurl source code (or
at lest what I believe to be the libcurl source) properly
in mingw (actually I'm using Dev C++ 4.9.9.1 & Win 98se) as
a library resource to be used with personal source code.

The installation document says I need to run a file named
MINGW32.BAT. But where on earth is this file.

Well never mind if it doesn't exist please provide manual
install instructions for Dev C or mingw or both. So far I
have installed *.h & *.c in the mingw include folder in its
own libcurl folder. And no I did not forget to associate
the libcurl folder to the C, C++ And project
include/libcurl directories. However I did get a barrage of
errors when using your many examples including simple.c,
getinmemory.c, httpput.c, multi-post.c, multithread.c, etc.
With Projects I included every *.h & */c included in the
curl-7.14.0.zip file for compiling in addition to the
sample code with other compilation errors resulting. I am
not using the ssl feature to keep it simple thus far. The
errors I got during single file compilation were almost
identical for all of them with the exception of pthread
when it was not used and called for:

  [Linker error] undefined reference to `curl_easy_init'
  [Linker error] undefined reference to `curl_easy_setopt'
  [Linker error] undefined reference to `curl_easy_perform'

  [Linker error] undefined reference to `curl_easy_cleanup'

  [Linker error] undefined reference to
`_imp__pthread_create'
  [Linker error] undefined reference to
`_imp__pthread_join'

The samp;e Source code (multithread.c) being used follows:

  /*****************************************************************************
   * _ _ ____ _
   * Project ___| | | | _ \| |
   * / __| | | | |_) | |
   * | (__| |_| | _ <| |___
   * \___|\___/|_| \_\_____|
   *
   * $Id: multithread.c,v 1.2 2004/11/16 08:49:51 bagder
Exp $
   */
  
  /* A multi-threaded example that uses pthreads
extensively to fetch
   * X remote files at once */
  
  
  
  #define CURL_STATICLIB
  
  #include <stdio.h>
  #include <pthreads/pthread.h>
  #include <libcurl/curl.h>
  #include <windows.h>
  #include <libcurl/multi.h>
  
  
  
  using namespace std;
  
  
  
  
  
  /*
    List of URLs to fetch.
  
    If you intend to use a SSL-based protocol here you MUST
setup the OpenSSL
    callback functions as described here:
  
    http://www.openssl.org/docs/crypto/threads.html#DESCRIPTION
  
  */
  char *urls[]= {
    "http://curl.haxx.se/",
    "ftp://cool.haxx.se/",
    "http://www.contactor.se/",
    "www.haxx.se"
  };
  
  void *pull_one_url(void *url)
  {
    CURL *curl;
  
    curl = curl_easy_init();
    curl_easy_setopt(curl, CURLOPT_URL, url);
    curl_easy_perform(curl); /* ignores error */
    curl_easy_cleanup(curl);
  
    return NULL;
  }
  
  
  /*
     int pthread_create(pthread_t *new_thread_ID,
     const pthread_attr_t *attr,
     void * (*start_func)(void *), void *arg);
  */
  
  int main(int argc, char **argv)
  {
    pthread_t tid[4];
    int i;
    int error;
    for(i=0; i< 4; i++) {
      error = pthread_create(&tid[i],
                             NULL, /* default attributes
please */
                             pull_one_url,
                             urls[i]);
      if(0 != error)
        fprintf(stderr, "Couldn't run thread number %d,
errno %d\n", i, error);
      else
        fprintf(stderr, "Thread %d, gets %s\n", i,
urls[i]);
    }
  
    /* now wait for all threads to terminate */
    for(i=0; i< 4; i++) {
      error = pthread_join(tid[i], NULL);
      fprintf(stderr, "Thread %d terminated\n", i);
    }
  
    return 0;
  }
  
I've spent way too much time on this trivial install issue.
I need some directions to steer me. I'd appreciate any
help.

Thanks

Xlor
Received on 2005-06-20