Compilation GTK

Compilation GTK - C - Programmation

Marsh Posté le 22-04-2005 à 20:45:08    

Je viens d'installer GTK-2.0 (Debien, par apt-get) et je viens d'essayer de compiler un exemple trouvé sur un tutorial :
 

Code :
  1. #include <gtk/gtk.h>
  2. int main( int argc,
  3. char *argv[] )
  4. {
  5. GtkWidget *window;
  6. gtk_init (&argc, &argv);
  7. window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  8. gtk_widget_show (window);
  9. gtk_main ();
  10. return 0;
  11. }


 
J'ai compilé en tapant la ligne suivante :
gcc base.c -o base `pkg-config --cflags --libs gtk+-2.0`

Le compilateur me répond :

In file included from /usr/include/gtk-2.0/gdk/gdk.h:34,
from /usr/include/gtk-2.0/gtk/gtk.h:31,
from base.c:1:
/usr/include/gtk-2.0/gdk/gdkdrawable.h:161: error: erreur d'analyse syntaxique before "PangoMatrix"
/usr/include/gtk-2.0/gdk/gdkdrawable.h:359: error: erreur d'analyse syntaxique before "PangoMatrix"
In file included from /usr/include/gtk-2.0/gdk/gdk.h:43,
from /usr/include/gtk-2.0/gtk/gtk.h:31,
from base.c:1:
/usr/include/gtk-2.0/gdk/gdkpango.h:69: error: erreur d'analyse syntaxique before "PangoRenderer"
/usr/include/gtk-2.0/gdk/gdkpango.h:69: attention : pas de point virgule à la fin de la structure ou de l'union
/usr/include/gtk-2.0/gdk/gdkpango.h:72: error: erreur d'analyse syntaxique before '}' token
/usr/include/gtk-2.0/gdk/gdkpango.h:84: error: erreur d'analyse syntaxique before "PangoRendererClass"
/usr/include/gtk-2.0/gdk/gdkpango.h:84: attention : pas de point virgule à la fin de la structure ou de l'union
/usr/include/gtk-2.0/gdk/gdkpango.h:89: error: erreur d'analyse syntaxique before '*' token
/usr/include/gtk-2.0/gdk/gdkpango.h:89: attention : data definition has no type or storage class
/usr/include/gtk-2.0/gdk/gdkpango.h:90: error: erreur d'analyse syntaxique before '*' token
/usr/include/gtk-2.0/gdk/gdkpango.h:90: attention : data definition has no type or storage class
/usr/include/gtk-2.0/gdk/gdkpango.h:97: error: erreur d'analyse syntaxique before "PangoRenderPart"
/usr/include/gtk-2.0/gdk/gdkpango.h:100: error: erreur d'analyse syntaxique before "PangoRenderPart"
In file included from /usr/include/gtk-2.0/gtk/gtkaccellabel.h:34,
from /usr/include/gtk-2.0/gtk/gtk.h:34,
from base.c:1:
/usr/include/gtk-2.0/gtk/gtklabel.h:133: error: erreur d'analyse syntaxique before "PangoEllipsizeMode"
/usr/include/gtk-2.0/gtk/gtklabel.h:134: error: erreur d'analyse syntaxique before "gtk_label_get_ellipsize"
/usr/include/gtk-2.0/gtk/gtklabel.h:134: attention : data definition has no type or storage class
In file included from /usr/include/gtk-2.0/gtk/gtk.h:132,
from base.c:1:
/usr/include/gtk-2.0/gtk/gtkprogressbar.h:144: error: erreur d'analyse syntaxique before "PangoEllipsizeMode"
/usr/include/gtk-2.0/gtk/gtkprogressbar.h:145: error: erreur d'analyse syntaxique before "gtk_progress_bar_get_ellipsize"
/usr/include/gtk-2.0/gtk/gtkprogressbar.h:145: attention : data definition has no type or storage class
zsh: exit 1 gcc base.c -o base `pkg-config --cflags gtk+-2.0`

 
Quelqu'un sait-il d'où vient l'erreur

Reply

Marsh Posté le 22-04-2005 à 20:45:08   

Reply

Marsh Posté le 22-04-2005 à 20:49:09    

apt-get install libpango1.0-dev ?

Reply

Marsh Posté le 22-04-2005 à 20:52:11    

libpango1.0-0
libpango1.0-common
libpango1.0-dev
sont installé

Reply

Marsh Posté le 22-04-2005 à 21:05:16    

quelle version de debian ? de gtk ?

Reply

Marsh Posté le 22-04-2005 à 21:14:58    

Debian : Sid
GTK : libgtk2.0-dev

Reply

Marsh Posté le 22-04-2005 à 21:19:52    

landruker a écrit :


Code :
  1. #include <gtk/gtk.h>
  2. int main( int argc,
  3. char *argv[] )
  4. {
  5. GtkWidget *window;
  6. gtk_init (&argc, &argv);
  7. window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  8. gtk_widget_show (window);
  9. gtk_main ();
  10. return 0;
  11. }




Fonctionne sous Windows 98 / Dev-C++, mais la fermeture de la fenêtre se fait mal (le processus est encore présent en mémoire après qu'on ait clické sur la croix... Obligé de tuer le processus 'à la main' : 'ne répond pas').
 
Je ne sais pas ce que ça donne sous KDE ou autre...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 22-04-2005 à 21:33:53    

ça compile très bien sous SID. le reste, c'est normal, il faut ajouter des signaux.

Reply

Marsh Posté le 23-04-2005 à 13:05:07    

C'est bon, j'ai résolu le problème :
Ca vient de pkg-config; mes fichiers *.pc se trouvent dans le répertoire /usr/lib/pkgconfig
 
Mais il se trouve que j'ai aussi des fichiers *.pc dans le dossier /usr/local/lib/pkgconfig ; ces derniers font références à des headers dans /usr/local/include... or mes headers sont dans /usr/include...
 
il m'a donc suffit de renommer tous les fichiers *.pc du répertoire /usr/local/lib/pkgconfig en *.pc.old
 
et tout marche nickel !!
J'en déduit donc que l'erreur de compilation suivante : erreur d'analyse syntaxique before "kiki" signifie que le compilateur ne trouve pas de headers de définition de l'objet (structure, etc, ...) "kiki"

Reply

Marsh Posté le 23-04-2005 à 13:13:50    

non. il te suffit de mettre correctement ton PKG_CONFIG_PATH.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed