[질문]thread error

river0kr의 이미지

에러메세지는 ''undefined reference to `pthread_create''
입니다.

<pthrea.h>를 include해주었고,
코딩은 다음과 같습니다.

#include <pthread.h>

void *F_AInfo(void *arg);

main(){

pthread_t thr1;
int res1;

B_PARAM B_PART; /* Data Buffer (Table.h에 정의) */

res1 = pthread_create ( &thr1, NULL, F_AInfo, (void*)&B_PART );

if(res1 != 0){
return 1;
}

/*쓰레드에서 모든 처리가 끝날때까지 대기한다*/
for(;;){
if (B_PART.result != 2)
break;

}

}

void *F_AInfo(void *arg)
{
...........
}

choissi의 이미지

http://bbs.kldp.org/search.php

여기서 아래의 키워드로 검색을 해보세요
undefined reference and thread

울랄라~ 호기심 천국~!!
http://www.ezdoum.com

은빛연어의 이미지

컴파일 할때 라이브러리를 첨부하지 않아서 그렇습니다..
해더파일만 있다고 컴파일이 되지는 않죠...
컴파일하실때 -lpthread를 붙혀서 컴파일하시면 됩니다..

도움되시길...

simpid의 이미지

대충 보기에 시스템 성능에 문제를 줄 소지가 있어 보입니다.

for(;;){ 
if (B_PART.result != 2) 
break;

이런식의 코드는 특정 변수의 값이 thread에 의해 바뀔때 까지 기다리기 위한 것인것 같은데..
CPU를 100% 점유하는 코드이므로 별로 좋은 습관이 아닙니다.

pthread_join() 을 이용하시던지... 뭔가 다른 방법으로 구현하셔야 할 것 같습니다.