#1 Le 29/05/2005, à 04:10
- Kiboumz
[Résolu] Compiler un programme C avec GTK
Bonjour,
j'arrive pas à compiler un progamme utilisant Gtk, mon code est bon puisque j'ai pris un exemple d'un site, je marque cette ligne pour compiler
gcc -Wall -c test.c `pkg-config --cflags --libs gtk+-2.0`
et ca me sort toute ces erreurs... peut être que j'utilise mal la ligne de commande ?
gcc: -lgtk-x11-2.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lgdk-x11-2.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -latk-1.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lgdk_pixbuf-2.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lm: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lpangoxft-1.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faitegcc: -lpangox-1.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lpango-1.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lgobject-2.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lgmodule-2.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -ldl: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
gcc: -lglib-2.0: fichier d'entrée d'édition de liens n'est pas utilisé parce l'édition de lien n'a pas été faite
Merci
a+
#2 Le 29/05/2005, à 12:35
- tigrou
Re : [Résolu] Compiler un programme C avec GTK
Salut,
ce sont juste des warnings, si tu regardes bien, le test.o est bien créer. Ces warnings sont là car tu indiques les paramètres pour l'édition de liens alors que tu ne l'as fait pas avec l'option -c. Si tu n'as qu'un seul fichier .c fait plutot
gcc -Wall test.c `pkg-config --cflags --libs gtk+-2.0` -o test
./test
et tu auras ton exécutable directement
Si tu as plusieurs fichiers .c, compile les avec
gcc -Wall -c gtk.c `pkg-config --cflags gtk+-2.0`
# pareil pour les autres ...
gcc -Wall *.o `pkg-config --cflags --libs gtk+-2.0` -o test
Biensur il est plutot conseillé d'écrire un makefile dans ce dernier cas mais c'est une autre histoire
Hors ligne
#3 Le 29/05/2005, à 14:49
- Kiboumz
Re : [Résolu] Compiler un programme C avec GTK
Merci pour ta réponse
Au fait, à quoi sert le -Wall de gcc ?
Merci
a+
#4 Le 29/05/2005, à 14:55
- tigrou
Re : [Résolu] Compiler un programme C avec GTK
-Wall veut dire All Warnings
Hors ligne
#5 Le 29/05/2005, à 15:27
- Kiboumz
Re : [Résolu] Compiler un programme C avec GTK
Re,
Merci encore une fois pour ta réponse d'une rapidité renversante!
Ne connaitrais-tu pas un site qui explique clairement ce que veulent dire tous les paramètres que l'on peut utiliser avec gcc et gtk ?
par exemple ce que veut dire -o (j'imagine que ca crée un .objet)
ou ce que veut dire --cflags
Merci
a+
#6 Le 29/05/2005, à 16:21
- tigrou
Re : [Résolu] Compiler un programme C avec GTK
Pour les options de gcc tu peux regarder sa page du manuel même si c'est un peu indigeste (très long et pas toujours à jour) alors je fais un rapide récapitulatif des options qui servent souvent (tu dois pouvoir trouver nombre de documentations + ou - complètes la dessus sur le web) :
-Wall : tous les warnings
-o executable : création de l'éxécutable
-c : création des .o (fichiers objets)
-I/repertoire/ : ajoute le répertoire pour la recherche des header (#include <header.h>)
-lmalib : utilise malib pour l'édition des liens
-DMA_CONSTANTE : équivalent de #define MA_CONSTANTE au début du source
Bon avec ça tu peux déjà faire pas mal de truc, la plupart des autres paramètres de gcc sont dédiés à l'optimisation.
Ensuite sur la ligne qui te sert à compiler tu as `pkg-config --cflags --libs gtk+-2.0`
les ` indiquent au shell d'éxécuter la commande et de mettre le résultat sur la ligne de commande. Si tu éxécute pkg-config --cflags --libs gtk+-2.0 tu obtiens quelque chose comme :
tigrou@Lorien:~$ pkg-config --cflags --libs gtk+-2.0
-DXTHREADS -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
ce sont tous les paramètres nécessaires pour compiler un programme utilisant GTK, comme y'en a beaucoup, pkg-config est là pour simpilfier la vie du développeur
Du coup les deux lignes suivantes sont en fait les même :
gcc -Wall test.c `pkg-config --cflags --libs gtk+-2.0` -o test
gcc -Wall test.c -DXTHREADS -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -o test
Pour pkg-config les options utilies sont :
--libs : les paramètres pour l'édition de liens
--cflags : les paramètre pour l'inclusion de header
mais il en existe d'autres, je te laisse consulter pkg-config --help ou man pkg-config.
Hors ligne
#7 Le 29/05/2005, à 16:23
- Kiboumz
Re : [Résolu] Compiler un programme C avec GTK
Merci encore pour ta réponse, ça répond à ma question !
Merci
a+
#8 Le 29/05/2005, à 18:03
- yeKcim
Re : [Résolu] Compiler un programme C avec GTK
J'ajoute résolu dans le titre
Participer à un projet libre est un jeu... Et toi, à quoi tu joues ?
http://yeknan.free.fr
Hors ligne