https://computing.llnl.gov/tutorials/pthreads/ 에서 웹에서 다음 데모를 선택했습니다.
#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS 5
void *PrintHello(void *threadid)
{
long tid;
tid = (long)threadid;
printf("Hello World! It's me, thread #%ld!\n", tid);
pthread_exit(NULL);
}
int main (int argc, char *argv[])
{
pthread_t threads[NUM_THREADS];
int rc;
long t;
for(t=0; t<NUM_THREADS; t++){
printf("In main: creating thread %ld\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);
}
그러나 내 컴퓨터에서 컴파일하면 (Ubuntu Linux 9.04 실행) 다음 오류가 발생합니다.
corey@ubuntu:~/demo$ gcc -o term term.c
term.c: In function ‘main’:
term.c:23: warning: incompatible implicit declaration of built-in function ‘exit’
/tmp/cc8BMzwx.o: In function `main':
term.c:(.text+0x82): undefined reference to `pthread_create'
collect2: ld returned 1 exit status
헤더에는 기능 pthread.h
이 있어야하는을 포함하기 때문에 나에게 의미가 없습니다 pthread_create
. 무슨 일이 일어나고 있는지 어떤 아이디어?
-lpthread
컴파일하는 동안 필요
LDFLAGS= -pthread -lpthread
-lc_r
), (C)-thread
또는-threads
대신 또는 이외에, 또는 다른-lpthread
.