Avanti Indietro Indice

10. Secondo esempio: Xloadimage

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.


Avanti Indietro Indice