cURL / Mailing Lists / curl-library / Single Mail

curl-library

Réf. : Libcurl Install and Use Issues

From: Philippe HAMEAU <philippe.hameau_at_sagem.com>
Date: Mon, 20 Jun 2005 11:27:46 +0200

You have to download the minGW package on libcurl binaries download page
(at the very back of the page).
Put the .a in the lib directory
put the .c and .h in some include/libcurl directory ...

and don't forget to add "-lcurl" or "-lcurldll" to your linker options in
dev-cpp

Finally, if you've chosen to use the curldll, don't forget to put the dll
in the path (c:\windows or your app path).

Phil

"T kyer" <xdtrq_at_ananzi.co.za>

Envoyé par : curl-library-bounces_at_cool.haxx.se
20/06/2005 01:41
Veuillez répondre à libcurl development
Remis le : 20/06/2005 01:56

 
        Pour : curl-library_at_cool.haxx.se
        cc : (ccc : Philippe HAMEAU/DRD/SAGEM)
        Objet : Libcurl Install and Use Issues

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