다음 이전 차례

10. 두번째 예: Xloadimage

이 예의 문제 첫번째보다 쉽다. xloadimage 프로그램을 내 그래픽 도구 모음에 추가하면 좋겠다고 생각했다. 나는 xloadi41.gz 파일을 Mui와 Quercia가 쓴 X User Tools라는 훌륭한 책의 부록 CD에 있는 소스 디렉터리에서 직접 복사했다. 기대한 대로, tar xzvf로 파일을 풀 수 있었다. 하지만 make는 고약해 보이는 에러를 내고는 중단되어 버렸다.

gcc -c -O -fstrength-reduce -finline-functions -fforce-mem
-fforce-addr -DSYSV  -I/usr/X11R6/include
-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c

In file included from /usr/include/stdlib.h:32,
                 from image.h:23,
                 from xloadimage.h:15,
                 from mcidas.c:7:
/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:
conflicting types for `wchar_t'
/usr/X11R6/include/X11/Xlib.h:74: previous declaration of
`wchar_t'
make[1]: *** [mcidas.o] Error 1
make[1]: Leaving directory
`/home/thegrendel/tst/xloadimage.4.1'
make: *** [default] Error 2

에러 메시지에 결정적인 단서가 들어있다.

image.h 파일의 23째 줄을 보면...

       #include <stdlib.h>

Aha, xloadimage의 소스 어딘가에서 wchar_t가 표준 include 파일인 stdlib.h에서 정의된 것으로 다시 정의되었다. 먼저 stdlib.h는 포함시킬 필요가 없을 듯 하므로 image.h의 23째 줄을 주석문으로 만들어 보자.

이제 설치 과정은 아무런 치명적인 에러 없이 진행된다. xloadimage 패키지는 지금 정확히 작동하고 있다.


다음 이전 차례