curl-library
Libcurl Install and Use Issues
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