최근에 XUbuntu 11.10 64bit를 설치했지만 가장 간단한 pthread 예제를 컴파일하는 데 문제가 있습니다.
코드는 다음과 같습니다 pthread_simple.c
.
#include <stdio.h>
#include <pthread.h>
main() {
pthread_t f2_thread, f1_thread;
void *f2(), *f1();
int i1,i2;
i1 = 1;
i2 = 2;
pthread_create(&f1_thread,NULL,f1,&i1);
pthread_create(&f2_thread,NULL,f2,&i2);
pthread_join(f1_thread,NULL);
pthread_join(f2_thread,NULL);
}
void *f1(int *x){
int i;
i = *x;
sleep(1);
printf("f1: %d",i);
pthread_exit(0);
}
void *f2(int *x){
int i;
i = *x;
sleep(1);
printf("f2: %d",i);
pthread_exit(0);
}
그리고 여기 컴파일 명령이 있습니다
gcc -lpthread pthread_simple.c
결과 :
lptang @ tlp-linux : ~ / test / test-pthread $ gcc -lpthread pthread_simple.c /tmp/ccmV0LdM.o :`main '함수에서 : pthread_simple.c :(. text + 0x2c) :`pthread_create '에 대한 정의되지 않은 참조 pthread_simple.c :(. text + 0x46) :`pthread_create '에 대한 정의되지 않은 참조 pthread_simple.c :(. text + 0x57) :`pthread_join '에 대한 정의되지 않은 참조 pthread_simple.c :(. text + 0x68) :`pthread_join '에 대한 정의되지 않은 참조 collect2 : ld가 1 개의 종료 상태를 리턴했습니다.
누구든지 문제의 원인을 알고 있습니까?
예, 사전 환경을 사용했습니다. 이제 올바르게 표시됩니다.
—
chtlp
BTW,로 컴파일하십시오
—
Mat
-Wall
. 헤더가 없습니다. (그리고 sr_는 맞습니다.)
#include <pthread.h>