PDA

View Full Version : Playing with pthreads


setuid_w00t
10-12-2002, 11:59 PM
#include <pthread.h>
#define NUM_THREADS 5

void *PrintHello(void *threadid)
{
printf("\n%d: Hello World!\n", threadid);
pthread_exit(NULL);
}

int main()
{
pthread_t threads[NUM_THREADS];
int rc, t;
for(t = 0; t < NUM_THREADS; t++)
{
printf("Creating thread %d\n", t);
rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t);
if(rc)
{
printf("ERROR; return code from pthread_create() is %d\n", rc);
exit(-1);
}
}
pthread_exit(NULL);
}


and this is the output when I try to compile it:

$ gcc -o test test.c
/tmp/ccsEqt4h.o: In function `main':
/tmp/ccsEqt4h.o(.text+0x7a): undefined reference to `pthread_create'
collect2: ld returned 1 exit status


Any idea what is going on here?

bwkaz
10-13-2002, 12:20 AM
Yep, you need to link to pthreads. ;)

gcc -o test test.c -lpthread should help.

setuid_w00t
10-13-2002, 12:38 AM
Thanks. It worked.