Compilation impossible programme gtk

Fermé
ptitjano Messages postés 1 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 18 juin 2008 - 18 juin 2008 à 17:41
 surfzoid - 10 juil. 2008 à 13:43
J'essaye désespérément depuis hier de compiler un code source qui utilise notamment gtk2.
Lorsque je tente la compilation par un Makefile, j'obtiens une erreur qui commence comme ceci :


make -C ./src siftfeat
make[1]: entrant dans le répertoire « /home/jean/Video/series/lost/sift/src »
gcc -O3 -I../include `pkg-config --cflags opencv` `pkg-config --cflags gtk+-2.0` `pkg-config --cflags gsl` -c utils.c -o utils.o
In file included from /usr/include/gtk-2.0/gdk/gdkcolor.h:31,
from /usr/include/gtk-2.0/gdk/gdkcairo.h:23,
from /usr/include/gtk-2.0/gdk/gdk.h:30,
from utils.c:15:
/usr/include/gtk-2.0/gdk/gdktypes.h:32:18: error: glib.h: Aucun fichier ou répertoire de ce type
In file included from /usr/include/pango-1.0/pango/pango-font.h:25,
from /usr/include/pango-1.0/pango/pango-attributes.h:25,
from /usr/include/pango-1.0/pango/pango.h:25,
from /usr/include/gtk-2.0/gdk/gdktypes.h:33,
from /usr/include/gtk-2.0/gdk/gdkcolor.h:31,
from /usr/include/gtk-2.0/gdk/gdkcairo.h:23,
from /usr/include/gtk-2.0/gdk/gdk.h:30,
from utils.c:15:
/usr/include/pango-1.0/pango/pango-coverage.h:29: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’
/usr/include/pango-1.0/pango/pango-coverage.h:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:39: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:40: error: expected ‘)’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:41: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:42: error: expected ‘)’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:44: error: expected ‘)’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:47: error: expected ‘)’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:50: error: expected ‘)’ before ‘*’ token
/usr/include/pango-1.0/pango/pango-coverage.h:53: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
In file included from /usr/include/pango-1.0/pango/pango-font.h:26,
from /usr/include/pango-1.0/pango/pango-attributes.h:25,
from /usr/include/pango-1.0/pango/pango.h:25,
from /usr/include/gtk-2.0/gdk/gdktypes.h:33,
from /usr/include/gtk-2.0/gdk/gdkcolor.h:31,
from /usr/include/gtk-2.0/gdk/gdkcairo.h:23,
from /usr/include/gtk-2.0/gdk/gdk.h:30,
from utils.c:15:
/usr/include/pango-1.0/pango/pango-types.h:26:25: error: glib-object.h: Aucun fichier ou répertoire de ce type
In file included from /usr/include/pango-1.0/pango/pango-font.h:26,
from /usr/include/pango-1.0/pango/pango-attributes.h:25,
from /usr/include/pango-1.0/pango/pango.h:25,
from /usr/include/gtk-2.0/gdk/gdktypes.h:33,
from /usr/include/gtk-2.0/gdk/gdkcolor.h:31,
from /usr/include/gtk-2.0/gdk/gdkcairo.h:23,
from /usr/include/gtk-2.0/gdk/gdk.h:30,
from utils.c:15:
/usr/include/pango-1.0/pango/pango-types.h:28: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘G_BEGIN_DECLS’
/usr/include/pango-1.0/pango/pango-types.h:43: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PangoGlyph’
/usr/include/pango-1.0/pango/pango-types.h: In function ‘pango_units_from_double’:
/usr/include/pango-1.0/pango/pango-types.h:64: error: expected declaration specifiers before ‘G_GNUC_CONST’
/usr/include/pango-1.0/pango/pango-types.h:65: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘G_GNUC_CONST’
/usr/include/pango-1.0/pango/pango-types.h:126: error: storage class specified for parameter ‘PangoDirection’
/usr/include/pango-1.0/pango/pango-types.h:128: error: expected declaration specifiers before ‘PangoDirection’
/usr/include/pango-1.0/pango/pango-types.h:129: error: expected declaration specifiers before ‘PangoDirection’
/usr/include/pango-1.0/pango/pango-types.h:133: error: expected declaration specifiers before ‘gboolean’


J'ai cherché un peu partout et je suspecte un problème entre gtk et glib :


$ pkg-config --cflags gtk+-2.0
-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1


Je ne comprends pas pourquoi les librairies glib sont installées dans /usr/local/include et non pas dans /usr/lib/include.
J'ai vérifié et j'ai bien un dossier glib-2.0 dans /usr/local/include et /usr/include. De même pour /usr/local/lib et /usr/lib.

Si quelqu'un a une idée du problème, merci d'avance
A voir également:

1 réponse

avant de compiler tu fait un ./configure
Par défaut ça configure avec un prefix d'install /usr/local.
C'est pourquoi quand je compile je fait systematiquement et minimun :
./configure --prefix=/usr
J'imagine donc que tu n'as pas utilisé les pkg de ta distrib pour installer gtk+, que tu l'as compilé depuis les source avec un ./configure sans le --prefix=/usr

en bref ça ce passe comme ça au minimum (a remplacer par autogen.sh si il y a) :
./configure --prefix=/usr && make clean && make && make install <--- l'install ce fait en tant que root
0