Ytin 컴파일 하다가...
글쓴이: 사랑천사 / 작성시간: 토, 2005/09/24 - 1:36오후
안녕하세요?
이여송 사도요한입니다.
C는 하지만 C++는 공부 한 적이 없어서 영 그렇군요... 아무튼... 서버에 TinTin++ 1.86b를 설치 해 두었는데 사용자들이 Ytin을 많이 쓰고 때로는 Ytin을 설치 해 달라고들 하기에 생각 하다가 받아서 컴파일을 하는데 링크 시키는 부분에서 에러가 나네요... 아래...
---- Linking... gcc -I. -Iprotos -O2 -DHAVE_CONFIG_H -DCHINESE -o tt++ action.o alias.o ansi.o antisub.o files.o glob.o help.o highlight.o ivars.o llist.o log.o main.o misc.o net.o parse.o path.o pause.o queue.o rl.o rlhist.o rltab.o rltick.o rlvt100.o scrsize.o session.o substitute.o text.o ticks.o utils.o variables.o function.o macro.o stream.o uuencode.o -lreadline -lhistory -lnsl -ltermcap action.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' alias.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' antisub.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' files.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' glob.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' help.o(.eh_frame+0x11): more undefined references to `__gxx_personality_v0' follow utils.o(.text+0x8b): In function `syserr(char const*)': : undefined reference to `errno' utils.o(.text+0xa1): In function `syserr(char const*)': : undefined reference to `errno' utils.o(.text+0xca): In function `syserr(char const*)': : undefined reference to `errno' utils.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' variables.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' function.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' macro.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' stream.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status make: *** [tt++] 오류 1
음... 이런 식입니다. 뭔가가 잘못된것 같은데 이유를 모르겠네요... Configure에서도 문제가 없었고 이전의 컴파일 단계에서도 별 무리 없이 넘어갔지만, 링크 시키는 곳에서 오류가 나네요... 혹시나... 아시는 분 계시나요?
OS:HaansoftLinux 2005 Workstation Kernel:2.6.12.3 GCC:3.4.1
뭐.. 대충 이렇습니다. READLINE등은 모두 설치 되어 있습니다 음... 혹시나.. 아시는 분들 있으시면 답변 부탁 드리겠습니다 음...
모두 행복하세요...
이여송 사도요한 드림.
Forums:
undefined reference 오류는http://diffl.
undefined reference 오류는
http://diffl.oolim.net/gnu3/?doc=bbs/gnuboard.php&bo_table=flyfog&wr_id=13&page=1
여기서 지적하듯 setenv LD_LIBRARY_PATH /usr/local/lib를 실행해주면
될겁니다.
보통 아무설정없이 라이브러리를 설치하면 /usr/local/이 prefix로 되어서 그아래에
설치되는 것이 보통입니다.
이런 점이 귀찮다면 configure시에 --prefix=/usr라고 지정하면 되겠죠.
에러들중의 errno가 정의되지 않았다는 오류는 해당 소스를 열고(여기서는
util.cpp나 util.c++ 뭐 그런 파일이 되겠죠.) #include <errno.h>
를 포함시켜주면 됩니다.
C++에서는 모든 조건을 까다롭게 검사하며 C처럼 기본적으로 사용된다고
가정하고 알아서 포함시켜주는 것은 없습니다.
즉, extern으로 선언해준 header가 없이 변수를 사용하면 에러를 출력해
줍니다.
------------------------------
좋은 하루 되세요.
C++가...
음... 제가 사용하는 라이브러리들은 전부 다... /usr/lib에 들어 있습니다... /usr/local/lib에 넣은게 없는걸로 기억 되네요.. 아 물론... Ytin이 /usr/local/lib를 찾는다면 어쩔 수 없겠네요... 흐흠... C++가 까다롭긴 한가보군요.. C++는 배운적이 없어서요 허허.. 감사합니다. 일단 해 보겠습니다.
사람천사
그런데...
그런데 어떤 방법으로도 안 되네요... errno.h를 넣어 줬더니만... 이제는 __errno_location이라는 함수까지 레퍼런스가 정의되지 않았다고... 난리를.. 치는군요 음...
사람천사
흐흠... 아래처럼 나오는 군요 서정 해도...
계속 이어서 쓰려니 영.. 기분이... 죄짓는 기분...
-- RE-MAKE --
-- RE-RE-MAKE --
음... 결과가 암담하군요 훗... 제가 뭔가를 모르고 있는지도 모르죠... TinTin++는 잘 되는데... YTin은 왜 안 될까요 훗... 글세요 뭐 모르는게 잇으니 ...
아무튼... 훗..
사람천사
Makefile 에서.. 컴파일러를 gcc 말고 g++로 바꿔보세요..
Makefile 에서.. 컴파일러를 gcc 말고 g++로 바꿔보세요..
감사합니다.
비슷한 문제였는데 간단히 해결했습니다.
흐흠...
네.. 감사합니다. 하나는 해결 했습니다... 근대 __errno_location 이 없다네요... 그런 함수를 쓴 부분도 없는듯 한데 왜 그러는지 풋!!! 아무튼... 감사합니다...
사람천사
댓글 달기