這個例子提出較簡單的問題. xloadimage 程式加入到我的圖形工作組似乎是很有用. 我從一本由 Mui 和 Quercia 所著的好書 X User Tools 所附的 CD 上的原始碼目錄(source directory), 直接複製 xloadi41.gz 檔案下來. 如預期的, 用 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>
wchar_t
原始碼的某處已經重複定義了在標準 include 檔案 stdlib.h 已定義的東西.
首先試試將在 image.h 的23行標註(commenting out)起來,
也許 stdlib.h include 是不大需要的.
此時, build 過程沒有任何重大錯誤. xloadimage 程式現在功能都正常.