[완료]pthread_mutex_trylock 이 사라진 건 아니겠지요?
글쓴이: poplinux / 작성시간: 목, 2012/05/10 - 3:07오후
ubuntu 11.10 gcc 4.6.1 에서 pthread_mutex_trylock 사용하면 "undefined reference to `pthread_mutex_trylock" 이 떠 버립니다.
#include <pthread.h> pthread_mutex_t lock=PTHREAD_MUTEX_INITIALIZER; int main() { int ret; ret = pthread_mutex_trylock(&lock); }
(확인용으로 간단히 만들어 본 것이니 이해 부탁드립니다)
이 코드를 다른 서버 (gcc 4.4.3) 에서는 정상 컴파일 되는데 제 PC 에서는 되질 않네요.
이유가 있을까요?
Forums:
user@host:~$ gcc -o test
같은 환경에서 제 테스트 결과로 해당 에러는 -lpthread 를 main.c 이후에 두지 않은 경우입니다.
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
감사합니다. 확인 되었습니다. 평소엔 아래와 같이
감사합니다. 확인 되었습니다.
평소엔 아래와 같이 Makefile 을 만들어서 사용하였었는데
이젠 이렇게 해야 하나 봅니다.
컴파일 옵션의 위치나 순서를 정확히 맞추는 것이 원래 표준이었었나요? 좀 불편하군요.
gcc 문서라도 좀 살펴보아야 겠습니다.
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
LDFLAGS 위치 지정에 대한 내용 파악해서 뒤로
LDFLAGS 위치 지정에 대한 내용 파악해서 뒤로 가는 것이 맞다면 지금까지 만들어 놓은 Makefile 들은 다 수정해 놓아야 할 것 같습니다.
이것참. 애매하네요.
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
gcc 에서 ld 가 링크할 때 오브젝트 파일들과
gcc 에서 ld 가 링크할 때 오브젝트 파일들과 라이브러리 파일들로부터 심볼 스캔을 하는데 기본적으로는 1회의 스캔만 한다고 합니다. 그래서 오브젝트 파일들과 라이브러리 파일들이 gcc 의 명령줄에 나열될 때는 앞에서 뒤로 의존성을 가지도록 해야 한다고 합니다.
--start-group, --end-group 옵션으로 의존성이 얽혀있거나 불분명한 라이브러리들을 묶어주면 그 라이브러리 들의 심볼은 여러번 스캔하면서 링킹을 하게 된다고 합니다.
백창우씨 유틸리티 책 개정판 332 페이지 참조해보세요...
이 문제가 KLDP 에서 자주 QNA 에 올라오는 것같습니다.
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
아 그리구 LDFLAGS 는 맨 뒤로 가게 하는게
아 그리구 LDFLAGS 는 맨 뒤로 가게 하는게 맞는 것 같아요... 저두 이 문제 여러번 겪었습니다.
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
댓글 달기