2011-03-23 5 views
1

정적 내 코드에 TK에 연결합니다. 의존성으로 인해 문제가 발생했습니다. 내 메이크로 만든 수정입니다 : 내가 컴파일에 다음과 같은 오류가Makefile - libc 의존성을 고치는 방법? 내가 원하는

TK_LIBS_64 = \ 
    -L/usr/X11R6/lib64 \ 
    -lX11 \ 
    -lXss \ 
    -lXext \ 
    -L/usr/X11R6/lib64 \ 
    -lXft \ 
    -lX11 \ 
    -lfontconfig \ 
    -lfreetype \ 
    -lxmlparse \ 
    -lexpat \ 
    -L/usr/X11R6/lib64 \ 
    -lXrender \ 
    -lpthread \ 
    -ldl \ 
    -lpthread \ 
    -lieee \ 
    -lm 

LIBS64 = \ 
    -L$(TCL_ROOT)/lib/ -ltk8.5 \ 
    $(TK_LIBS_64) 

:

/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0x7f): In function `__pthread_initialize_minimal': 
: undefined reference to `__libc_setup_tls' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0x86): In function `__pthread_initialize_minimal': 
: undefined reference to `_dl_cpuclock_offset' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0xc0): In function `__pthread_initialize_minimal': 
: undefined reference to `_errno' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0xcb): In function `__pthread_initialize_minimal': 
: undefined reference to `_h_errno' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0x289): In function `pthread_initialize': 
: undefined reference to `_res' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0x3cc): In function `pthread_initialize': 
: undefined reference to `_dl_init_static_tls' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0x947): In function `__pthread_reset_main_thread': 
: undefined reference to `_errno' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0x955): In function `__pthread_reset_main_thread': 
: undefined reference to `_h_errno' 
/usr/lib/../lib64/libpthread.a(pthread.o)(.text+0x963): In function `__pthread_reset_main_thread': 
: undefined reference to `_res' 
/usr/lib/../lib64/libpthread.a(ptw-write.o)(.text+0x1a): In function `write': 
: undefined reference to `__syscall_error' 
/usr/lib/../lib64/libpthread.a(ptw-write.o)(.text+0x72): In function `write': 
: undefined reference to `__syscall_error' 
/usr/lib/../lib64/libpthread.a(ptw-read.o)(.text+0x1a): In function `read': 
: undefined reference to `__syscall_error' 
/usr/lib/../lib64/libpthread.a(ptw-read.o)(.text+0x72): In function `read': 
: undefined reference to `__syscall_error' 
/usr/lib/../lib64/libpthread.a(ptw-close.o)(.text+0x1a): In function `close': 
: undefined reference to `__syscall_error' 
/usr/lib/../lib64/libpthread.a(ptw-close.o)(.text+0x5e): more undefined references to `__syscall_error' follow 
/usr/lib/../lib64/libdl.a(dlopen.o)(.text+0x5): In function `dlopen': 
: undefined reference to `__dlopen' 
/usr/lib/../lib64/libdl.a(dlsym.o)(.text+0x5): In function `dlsym': 
: undefined reference to `__dlsym' 
/usr/lib/../lib64/libdl.a(dlerror.o)(.text+0x1): In function `dlerror': 
: undefined reference to `__dlerror' 
collect2: ld returned 1 exit status 
*** Error code 1 
dmake: Fatal error: Command failed for target 

정의되지 않은 참조입니다 중 하나 libc.a 또는 libc_p.a 및 종속성에 추가에서 도움이 안돼. 정의되지 않은 참조가 시스템 호출이기 때문에 여기서 기본적인 것을 놓치고 있다고 생각합니다. 나는 누군가가 그 실수를 지적 할 수 있으면 반드시 따라야 할 것이다.

답변

2

-lpthread 대신에 -pthread를 사용하십시오.