LINUX.ORG.RU

pthreads - ошибка линковки


0

0

Есть следующий сорец(чуть урезан), но что-то с ним нето при компиляции, а скорее линковке. Помогите плс. В .h вроде все есть Вот что выдает компилер: [root@localhost threads]# gcc -o threads threads.c /tmp/ccdZlxH7.o: In function `main': /tmp/ccdZlxH7.o(.text+0x14c): undefined reference to `pthread_create' /tmp/ccdZlxH7.o(.text+0x17b): undefined reference to `pthread_create' /tmp/ccdZlxH7.o(.text+0x1a5): undefined reference to `pthread_join' /tmp/ccdZlxH7.o(.text+0x1b8): undefined reference to `pthread_join' collect2: ld returned 1 exit status /* gcc -o threads threads.c */ #include <pthread.h> #include <unistd.h> #include <stdio.h> #include <signal.h> int nsec=0,n5sec=0; pthread_t main_tid; void mysignal(int signum) { if( pthread_self() == main_tid )return; printf("thread id: %d is exit",pthread_self()); pthread_exit(NULL); } void* thread1( void* ptr ) { while(1) { printf("Counter: %d\n",nsec++); printf("Thread id: %d\n",pthread_self()); sleep(1); } } int main() { pthread_t tid[2]; void *rc; printf("Threads started...\n"); main_tid=pthread_self(); printf("Main threadID: %d",main_tid); signal(SIGINT,mysignal); if( pthread_create( &tid[0], NULL, &thread1, NULL ) == -1 ) printf("\nError pthread_create\n"); if( pthread_create( &tid[1], NULL, &thread2, NULL ) == -1 ) printf("\nError pthread_create\n"); pthread_join(&tid[0], &rc); pthread_join(&tid[1], &rc); printf("nsec=%d\nn5sec=%d",(nsec-1), (n5sec-1)); printf("Threads end."); return 0; }

anonymous

Компилировать (точнее линковать) надо с опцией -lpthread

justme
()

спасибо - ожило :)

anonymous
()

В сановском и фряшном мане об этом написано, а в линуховом забыли

Havoc ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.