[supprimé]
Salut, voici l'erreur que j'ai sur fedora en notant pourtant bien dans mon fichier #include <gtk/gtk.h>
fenetre.c:1:22: /gtk/gtk.h : Aucun fichier ou répertoire de ce type
J'ai aussi essayé de mettre le chemin complet mais ca marche pas. Je pense que ceux qui ont utilisé gtk sur fedora pourront m'aider. Merci
valhalla
C'est pas une histoire de gtk mais la base du c 😉
Si tu fait un #include <gtk/gtk.h>, commence par t'assurer que le fichier /usr/include/gtk/gtk.h existe bien (sauf precision contraire avec l'option -I passée a gcc)
Il est possible que tu doivent creer un lien /usr/include/gtk qui pointe sur un rep avec la bonne version de gtk (1 ou 2)
a+
[supprimé]
le fichier /usr/include/gtk/gtk.h n'existe pas sur fedora 3 et je pense que c'est pas a moi de le créer. Merci
Tian
Bonjour,
Il ne faut pas que tu crées toi-même ce fichier (sauf si tu veux recoder Gtk 😉 ).
Assures-toi d'abord d'avoir le paquet gtk2-devel d'installé (si tu fais du Gtk2, pour Gtk1, c'est gtk+-devel).
Normalement, il te met tout dans /usr/include/gtk-2.0
Donc 2 possibilités.
Tu changes tes directives include sous cette forme :
#include <gtk-2.0/gtk/gtk.h>
Ou alors, tu ajoutes cette option à la ligne de compilation :
-I/usr/include/gtk-2.0
Si tu veux faire un programme qui puisse ensuite être compilé de partout, regarde du côté de autoconf (pour avoir un script configure qui génère les bonnes options de la ligne de commande). Mais là-dessus je ne pourrai pas trop t'aider.
Temet
Ou t'installes gtk devel...
[supprimé]
J'ai essayé ce que vous avez dit et je suis pa non plus un debutant en C. En fait j'ai la version 2.4.13 sous fedora 3. J'ai essayé en notant l'option a la compilation ou en notant le include dans le fichier mais ca marche pas.
Voici une des erreurs
In function `main':
fenetre.c:9: erreur: « GtkWidget » non déclaré (première utilisation dans cette fonction).
OU ENCORE
cc fenetre.c -o fenetre -I/usr/include/gtk-2.0
/tmp/ccqyD6Og.o(.text+0x1d): In function `main':
: undefined reference to `gtk_init'
/tmp/ccqyD6Og.o(.text+0x27): In function `main':
: undefined reference to `gtk_main'
collect2: ld a retourné 1 code d'état d'exécution
Merci de bien vouloir m'aider. J'en ai trop marre de galèrer. Il faudrait m'indiquer les fichiers includes a ajouter dans le fichier ou ce qu'il faut vraiment ajouter a la compilation.
Tian
Bonsoir,
Ce n'est pas une erreur de compilation que tu as là, mais une erreur de link (euh en français: *édition de liens*).
Il faut donc que tu rajoutes à ta ligne la librairie Gtk2. Pour cela, ces options :
-L/usr/lib -lgtk-X11-2.0
Tu peux aussi lire le fichier /usr/lib/pkgconfig/gtk+-2.0.pc tu y trouveras toutes ces informations (Libs et Cflags).
PS : Pour la 1ère erreur, il doit manquer un include. Regarde dans la doc Gtk2 pour ça.
PPS : Par hasard, tu ne pourrais pas mettre ce source en ligne, ça sera plus facile pour t'aider.
valhalla
Si tu ne lui files pas les librairies c'est normal que ca marche pas...
En fait pour pas t'embeter avec les includes et les librairies avec gtk tu peux utiliser la commande gtk-config.
Par exemple:
gcc prog.c -o prog `gtk-config --cflags --libs`
Et ca te met tout ce dont tu as besoin pour gtk...
A+