Questo esempio pone un problema più facile. Il programma
xloadimage sembrava un'utile aggiunta alla mia raccolta di attrezzi
grafici. Ho copiato il file xloadi41.gz
direttamente dalla directory
sorgente sul CD, allegato all'eccellente libro
X User Tools, di Mui e Quercia. Come c'era da aspettarsi,
tar xzvf estrae i file dall'archivio. Il make, però,
fornisce un antipatico errore e termina.
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
Il messaggio d'errore contiene l'indizio essenziale.
Guardando il file image.h
, linea 23...
#include <stdlib.h>
Aha, da qualche parte nel sorgente per xloadimage,
wchar_t è stato ridefinito in modo diverso da quanto
specificato nel file include standard, stdlib.h
. Proviamo
prima a commentare la linea 23 in image.h
, che forse
l'include stdlib.h, dopo tutto, non è necessario.
A questo punto, la fase di compilazione procede senza nessun errore fatale. Il pacchetto xloadimage funziona correttamente ora.