XWindow Programming 관련 질문 드립니다.
어찌어찌하다 보니 XWindow Program을 만들어야 되는 상황이 되었습니다.
리눅스도 잘 모르는데다, 처음 접하는 XWindow라...
이리저리 자료를 찾다가 KLDP Wiki에 XWindow 초보들을 위한 이만용님의 글이 올라와 있더군요..(http://wiki.kldp.org/wiki.php/LinuxdocSgml/X-Window-Programming-KLDP)
글을 보면서 따라하다가, 칼라 창 만드는 예제를 직접 코딩해서 컴파일을 해봤습니다.
//test.c
#include
main()
{
Display *d;
Window Root, w;
/* 색상값을 알아낼 때 쓸 변수들 */
Colormap CMap;
XColor color, color_exact;
unsigned long Black, Blue;
d = XOpenDisplay ( NULL );
/* 원하는 색상 검정/파랑을 얻는 부분 */
CMap = XDefaultColormap ( d, 0 );
XAllocNamedColor ( d, CMap, "black", &color, &color_exact );
Black = color.pixel;
XAllocNamedColor ( d, CMap, "blue", &color, &color_exact );
Blue = color.pixel;
Root = DefaultRootWindow ( d );
w = XCreateSimpleWindow ( d, Root, 100, 100, 600, 400,
2, Black, Blue );
XMapWindow ( d, w );
XFlush ( d );
sleep(10);
XDestroyWindow ( d, w );
XCloseDisplay ( d );
}
그런데 다음과 같은 에러가 발생을 합니다.
[root@localhost test]# cc -o test test.c -I/usr/include/X11 -L/usr/X11/lib -lX11
/tmp/ccByDQpU.o: In function `main':
test.c:(.text+0x5a): undefined reference to `XAllocNameColor'
test.c:(.text+0x88): undefined reference to `XAllocNameColor'
collect2: ld returned 1 exit status
[root@localhost test]#
'XAllocNameColor'라는 함수가 없다는 얘긴데, 검색을 해본결과 XLib.h에는 extern으로 선언이 되어 있더군요.
그렇다면 라이브러리가 없다는 얘기같은데 ... 맞는지 모르겠네요..
fedora9 2.6.27 i686버전이구요.
xorg-server-1.5.3을 설치 했습니다.. 라이브러리를 보니까 libXt.so.6.0.0 이랑 libX11.6.2.0 이 설치가
되어 있네요. 음.. 더 필요한게 뭔지 모르겠습니다.
답변 부탁드립니다.
ps. 다른 XWindow 관련 프로그램도 컴파일 하는 과정에서
XCreateColormap()이라는 함수에서 segmantation 오류가 발생했습니다. 연관이 있나 해서..
이름이 잘못된 것 같군요.
XAllocNameColor -> XAllocNamedColor
댓글 달기