Error: " undefined reference to......."
Apr 24, 2011 at 9:08pm UTC
Hey guys, how to over come the error in the title?
Apr 24, 2011 at 9:09pm UTC
Well, you are probably referring to something that isn't defined in the scope (self explanatory). We can't help you further without the code that is causing the problem.
Apr 24, 2011 at 9:23pm UTC
Well, here is the code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<pthread.h>
#define NUM_THREADS 6
void *thread_function(void *arg);
int main()
{
int res;
pthread_t a_thread[NUM_THREADS];
void *thread_result;
int lots_of_threads;
for (lots_of_threads = 0; lots_of_threads < NUM_THREADS; lots_of_threads++) {
res = pthread_create(&(a_thread[lots_of_threads]), NULL, thread_function,
(void *)&lots_of_threads);
if (res != 0)
{
perror("Thread creation failed" );
exit(EXIT_FAILURE);
}
sleep(1);
}
printf(" Waiting for threads to finish...\n" );
for (lots_of_threads = NUM_THREADS - 1; lots_of_threads >= 0; lots_of_threads--)
{
res = pthread_join(a_thread[lots_of_threads], &thread_result);
if (res == 0)
{
printf("Picked up a thread\n" );
}
else
{
perror("pthread_join failed" );
}
}
printf("All done\n" );
exit(EXIT_SUCCESS);
}
void *thread_function(void *arg)
{
int my_number = *(int *)arg;
int rand_num;
printf("thread_function is running. Argument was %d\n" , my_number);
rand_num=1+(int )(9.0*rand()/(RAND_MAX+1.0));
sleep(rand_num);
printf("Bye from %d\n" , my_number);
pthread_exit(NULL);
}
Apr 24, 2011 at 9:24pm UTC
And to what is the undefined reference?
EDIT: If you don't know how to answer this, just copy & paste the precise compiler errors you are getting.
Last edited on Apr 24, 2011 at 9:25pm UTC
Topic archived. No new replies allowed.