기초 Xwindow 프로그램에서요...
글쓴이: 익명 사용자 / 작성시간: 목, 2002/01/03 - 10:46오전
#include
main()
{
Display *d ;
d = XOpenDisplay ("localhost0.0") ;
XCloseDisplay (d) ;
}
를 ex01.c에 저장하구요, 컴파일을 매뉴얼데로 했습니다.
cc -o ex01 ex01.c -I/usr/include/X11 -lX11 -L/usr/X11/lib
하지만 컴파일이 안되는군요
에러메세지는 다음과 같습니다.
/usr/bin/ld cannot find -lX11
collect2 ld returned 1 exit status
도통 모르겠구만요.. 초장부터 에러라니..
미리 감사드립니다.
Forums:
Re: 기초 Xwindow 프로그램에서요...
/usr/bin/ld cannot find -lX11
collect2 ld returned 1 exit status
일단 이에러는 ld가 라이브러리를 찾지 못했을 경우 출력하는 메시지입니다.
문제를 바로 거기에 있겠죠. ^^;
cc -o ex01 ex01.c -I/usr/include/X11 -lX11 -L/usr/X11/lib
첫번째 -I/usr/include/X11에서 '-I'는 i(아이)의 대문자를 사용합니다.
두번째 -lX11에서 '-l'은 L(엘)의 소문자를 사용합니다.
이두번째 부분이 틀려서 나올 수도 있는 문제입니다.
그리고 혹시 또 에러가 날 수가 있습니다. 마지막
세번째 -L/usr/X11/lib에서 만일 에러가 나면 -L/usr/X11R6/lib라고 수정을
해보세요.
Re: 기초 Xwindow 프로그램에서요...
질문을 하시면서 정확한 정보를 올리지 않네요.
최소한 사용 OS는 올려야 lib위치를 알려 주죠.
포괄적으로 말한다면
lib의 경로가 잘못되어 있습니다.
일반적으로 X11은 릴리즈된 버젼이 존재하는데,
요즈음은 R6를 사용합니다.
때문에 경로는 "/usr/X11R6/lib"가 됩니다.
참고로
link시 해당 lib를 찾지 못하는 경우는
find / -name "libXXXX*" -print 하면
정확한 경로를 알수 있습니다.
이때 libXXXX는 자신이 link하는 라이브러를 말합니다.
예를들면 "-lX11" 이면
find / -name "libX11*" -print
..
/usr/X11R6/lib/aout/libX11.so.6.1
/usr/X11R6/lib/libX11.a
/usr/X11R6/lib/libX11.so
/usr/X11R6/lib/libX11.so.6
..
원하는 경로를 알 수 있습니다.
두분 모두 감사드립니다.
역시 경로명이였군요...
감사합니다.
댓글 달기