재귀적 쓰레드... 사용에서...
글쓴이: xt / 작성시간: 화, 2006/11/14 - 5:21오후
linux(페도라코어4) 에서
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP 를 쓰레드초기화로 사용하려고 할때
pthread.h 를 보니 위의 내용이 정의는 되어있더군요. 단!
#ifdef __USE_GNU 일 경우에요.
해서 코드에서 #define __USE_GNU 라고 정의해서 컴파일하는데.
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP 의 미정의 에러가 뜹니다.
하여, pthread.h 의 정의내용을 직접 복사해서 넣고 해보니 되고...
여러가지 방법을 간구해봤는데;
#define __USE_GNU
#include pthread.h // 태그에 의해서 기호가 사라져서 괄호는 뺍니다.
이런식으로 코드에서 정의하면 안되는겁니까?
전처리나, 번역과정에서 define 보다 쓰레드 헤더를 먼저 읽어오게 되는건가요?
어떻게 하는게 바른 방법인지요 ㅠ_ㅜ/?
Forums:
네 생각하시는데로
네 생각하시는데로 pthread.h 를 include 하기 전에 define 을 먼저 하면 됩니다.
위와 같은 방법으로 하셔도 되지만
gcc 같은 컴파일러의 옵션에
-D__USE_GNU
와 같은 방법으로해결하시는 것이 일반적인 방법이라고 판단되네요.
댓글 달기