[질문] 한텀 static 컴파일?
글쓴이: keston / 작성시간: 금, 2004/02/13 - 1:15오후
제가 계정을 가진 리눅스 서버에 한텀등 XFree86 패키지가 아예 설치가 안되있습니다.
근데 한텀을 쓰고 싶어서 꽁수로 생각해 낸게 static 컴파일 하면 라이브러리 없이 동작 가능 하므로 다른 리눅스 서버에서 한텀 소스(hanterm-xf-2.0.5-173.tar.gz)를 받아다가 static 컴파일해서 사용할 생각으로 한번 해봤습니다.
Makefile의 CFLAGS에 -static 옵션을 추가하고 make 했더니..
(생략) gcc -static -g -O2 -L/usr/X11R6/lib -o hanterm button.o charproc.o charsets.o cursor.o data.o doublechr.o fontutils.o input.o main.o menu.o misc.o print.o ptydata.o screen.o scrollbar.o tabs.o util.o xstrings.o VTPrsTbl.o TekPrsTbl.o Tekproc.o automata.o chat.o hangul.o hanja.o hfont.o hanutil.o history.o comp.o johabcode2.o -L/usr/X11R6/lib -lXaw3d -lXmu -lXext -lXt -lSM -lICE -lX11 -lnsl -lncurses /usr/X11R6/lib/libXaw3d.a(MultiSrc.o)(.text+0xf79): In function `InitStringOrFile': : the use of `tmpnam' is dangerous, better use `mkstemp' /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0x85a): In function `_XEventsQueued': : undefined reference to `pthread_equal' /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0xc21): In function `_XEventsQueued': : undefined reference to `pthread_equal' /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0xc3a): In function `_XEventsQueued': : undefined reference to `pthread_equal' /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0xc56): In function `_XEventsQueued': : undefined reference to `pthread_equal' /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0xc73): In function `_XEventsQueued': : undefined reference to `pthread_equal' /usr/X11R6/lib/libX11.a(XlibInt.o)(.text+0xd06): more undefined references to `pthread_equal' follow collect2: ld returned 1 exit status make: *** [hanterm] 오류 1
이렇게 에러가 나네요..
예전 레드햇 7.3에선 이렇게 해서 한텀을 사용했었는데 7.3과 레드햇9가 커널? 라이브러리? 버전이 달라서 그런지 7.3에서 static 컴파일한 한텀이 9에선 실행이 안되네요..
글구 7.3에선 static 옵션으로 컴파일이 됐었는데 9에선 위와 같은 에러가 나며 컴파일이 안되네요..
근데 왜 static 옵션없이 컴파일은 되는데 static 옵션을 주면 에러가 날까요?
정확히 static옵션의 의미가 뭔가요? (gcc man page는 봤는데 에러의 원인은 못찾겠군요..실력부족..ㅡ.ㅡ;)
꼭 한텀이 아니래두 xterm..Eterm등 상관 없거든요..
혹시 해보신분 또는 해결방법 아시는분 답변 부탁드립니다.
Forums:
게시물이 프로그램 QnA에 적당할 것 같아서 자리를 옮겼습니다.일
게시물이 프로그램 QnA에 적당할 것 같아서 자리를 옮겼습니다.
일단 에러내용을 보면 pthread가 내부적으로 사용되어졌기 때문에 컴파일시에
pthread를 같이 포함시켜야 할겁니다.
즉, CFLAGS에 -pthread도 같이 포함 시켜보세요.
그리고 LINK부분에도 -lpthread를 포함시켜주어야 할것같네요.
그런데 static으로 컴파일하면 실행이 가능한지 궁금하군요. :)
------------------------------
좋은 하루 되세요.
댓글 달기