쓰레드에서 뮤텍스를 재귀적으로 사용하고자...
글쓴이: rgbi3307 / 작성시간: 금, 2009/06/05 - 12:17오후
안녕하세요?
오늘 프로그램 코딩하다가 경험한 내용을 올려봅니다.
#include //쓰레드 함수와 구조체들
//쓰레드에서 뮤텍스를 재귀적으로 사용할때
pthread_mutex_t request_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
소스에 위의 코드가 들어가 있는 경우,
아래와 같이 gcc 로 컴파일 하니까, 오류가 나네요.
$ gcc -o ex0605 ./ex0605_thread_pool_sever.c -lpthread
//컴파일 에러
ex0605_thread_pool_sever.c:14: `PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP` undeclared here (not in a function)
그런데, g++로 컴파일 하면, 오류없이 컴파일 및 링크됩니당~
$ g++ -o ex0605 ./ex0605_thread_pool_sever.c -lpthread
//컴파일 성공
위의 내용을 경험해 보신분은 컴파일시 삽질 수를 줄이시길...
From:
*알지비 (메신저: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.kr/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))
Forums:
감사합니다.
++로 하니까 되네요
"#define _GNU_SOURCE" 를 소스파일
"#define _GNU_SOURCE" 를 소스파일 앞머리에 추가하시거나
"-D _GNU_SOURCE" 를 컴파일 옵션에 붙이시거나.