CDT et GTK+, dll non trouvée à la compilation
Bonjour,
J'utilise GTK sous CDT et j'ai beaucoup de mal à configurer mon projet et les options de mon compilateur.
ALors j'ai récupéré un "pack gtk".
Puis j'ai ajouté les dossiers suivants dans mes includes path de gcc:
Citation:
C:\Program Files\Pack GTK+\include
C:\Program Files\Pack GTK+\include\atk
C:\Program Files\Pack GTK+\include\cairo
C:\Program Files\Pack GTK+\include\cairo\src
C:\Program Files\Pack GTK+\include\glib
C:\Program Files\Pack GTK+\include\glib\build
C:\Program Files\Pack GTK+\include\glib\glib
C:\Program Files\Pack GTK+\include\glib\gmodule
C:\Program Files\Pack GTK+\include\glib\gobject
C:\Program Files\Pack GTK+\include\glib\gthread
C:\Program Files\Pack GTK+\include\gtk+
C:\Program Files\Pack GTK+\include\gtk+\contrib
C:\Program Files\Pack GTK+\include\gtk+\gtk
C:\Program Files\Pack GTK+\include\gtk+\gdk
C:\Program Files\Pack GTK+\include\gtk+\gdk-pixbuf
C:\Program Files\Pack GTK+\include\gtk+\modules
C:\Program Files\Pack GTK+\include\libpng
C:\Program Files\Pack GTK+\include\libpng\contrib
C:\Program Files\Pack GTK+\include\pango
C:\Program Files\Pack GTK+\include\pango\modules
C:\Program Files\Pack GTK+\include\pango\pango
C:\Program Files\Pack GTK+\include\tiff
C:\Program Files\Pack GTK+\include\tiff\libtiff
C:\Program Files\Pack GTK+\lib\glib\include
C:\Program Files\Pack GTK+\lib\gtk+\include
Ajouté les flags suivants à gcc:
Code:
-c -fmessage-length=0 -mms-bitfields
Et ajouté les liens suivants à MinGW :
Code:
1 2
| -LC:\Program Files\Pack GTK+\bin
-llibgtk-win32-2.0-0.dll |
(qui ce trouve dans le répertoire précité)
Je n'ai plus d'erreurs, mais gcc n'arrive pas à trouver "libgtk-win32-2.0-0.dll".
La mise en oeuvre de GTK sous windows, eclipse et CDT est vraiment fastidieuse...mais pour des raisons pratiques je ne peut pas me passer d'eclipse.
Si quelqu'un peu me conseiller?
Cordialement,
Xavier
Eclipse CDT, GTK+-2.0 et Windows : une solution
Il n'est pas garanti que cela marche à 100%!
En espérant que cela vous aide!
Installation du runtime GTK+-2.0 :
Celui que j'ai utilisé :
http://monsitecpp.free.fr/tutoriaux/...TK%2B_2.10.exe
Lancez l'installation du Runtime GTK+ et installez-le où bon vous semble, et mettez à jour votre variable d'environnement PATH :
"Démarrer">"Panneau de configuration">"Système">"Avancé">"Variables d'environnement", puis cherchez la variable PATH, et modifiez la en ajoutant ";C:\votre\chemin\d'install\du\runtime"
Installation d'un pack GTK+-2.0 :
Celui-ci que j'ai utilisé :
http://monsitecpp.free.fr/tutoriaux/..._Im%40GinE.exe
Installez le à un endroit que vous allez mémoriser, car cela servira plus tard. Personellement, je l'ai installé dans "C:\apps\GTK+".
De l'utilisation de GTK avec Eclipse CDT :
1/ Ajouter les includes nécessaires pour la compilation :
votre_projet(clic droit)>"Properties">"C/C++ Build">"Settings">"Tool settings">"GCC C Compiler">"Directories"
Ajouter les dossiers suivants :
Citation:
C:\apps\GTK+\include
C:\apps\GTK+\include\atk
C:\apps\GTK+\include\cairo
C:\apps\GTK+\include\cairo\src
C:\apps\GTK+\include\glib
C:\apps\GTK+\include\glib\build
C:\apps\GTK+\include\glib\glib
C:\apps\GTK+\include\glib\gmodule
C:\apps\GTK+\include\glib\gobject
C:\apps\GTK+\include\glib\gthread
C:\apps\GTK+\include\gtk+
C:\apps\GTK+\include\gtk+\contrib
C:\apps\GTK+\include\gtk+\gtk
C:\apps\GTK+\include\gtk+\gdk
C:\apps\GTK+\include\gtk+\gdk-pixbuf
C:\apps\GTK+\include\gtk+\modules
C:\apps\GTK+\include\libpng
C:\apps\GTK+\include\libpng\contrib
C:\apps\GTK+\include\pango
C:\apps\GTK+\include\pango\modules
C:\apps\GTK+\include\pango\pango
C:\apps\GTK+\include\tiff
C:\apps\GTK+\include\tiff\libtiff
C:\apps\GTK+\lib\glib\include
C:\apps\GTK+\lib\gtk+\include
2/ Ajouter le flag "-mms-bitfields" à GCC C Compiler :
votre_projet(clic droit)>"Properties">"C/C++ Build">"Settings">"Tool settings">"GCC C
Compiler">"Miscellaneous"
Ajouter "-mms-bitfields" (sans les guillemets) dans le champ "Other flags".
3/ Ajouter les liens vers les .lib dans MinGW C Linker :
votre_projet(clic droit)>"Properties">"C/C++ Build">"Settings">"Tool settings">"MinGW C Linker">"Libraries"
- Dans Library search path (-L), ajouter :
C:\apps\GTK+\lib
- Dans libraries (-l), ajouter :
gtk-win32-2.0
gobject-2.0
glib-2.0
Ces librairies doivent être dans "C:\apps\GTK+\lib". On remarque qu'il ne faut pas mettre les ".lib"
Voila voila, si tout se passe bien, votre projet doit compiler, et l'edition de liens doit s'effectuer correctement.
Je tiens encore à préciser que cela fonctionne chez moi, que ce n'est pas universel, donc il ne s'agit pas d'une recette miracle, mais de quelques conseils pour y arriver.
La config sur laquelle cela a été testé :
Windows Server 2003
Eclipse Version: 3.3.0
Eclipse CDT Version: 4.0.1
GTK+-2.10.12
Mais si vous avez le choix préférez une plateforme Linux pour developper en GTK!
Tchao!
Une méthode plus légère à mon goût
Ce post montre comment compiler un projet Eclipse CDT avec gtk et glade avec une makefile managé.
C'est une alternative à la solution proposée plus haut qui évite de rentrer les différents chemins un par un, ce qui est fastidieux.
Pour cela il faut :
- (1) donner les références des différents fichiers header et
- (2) fournir les différents chemins des librairies
****************************************
Etape 1 :
****************************************
Faire click droit sur le projet ->"Properties">"C/C++ Build">"Settings">"Tool settings">"GCC C Compiler">"Miscellaneous"
Dans la case "others flags" rajouter
-mms-bitfields -IC:/GTK/include/libglade-2.0 -IC:/GTK/include/gtk-2.0 -IC:/GTK/include/libxml2 -IC:/GTK/lib/gtk-2.0/include -IC:/GTK/include/atk-1.0 -IC:/GTK/include/cairo -IC:/GTK/include/pango-1.0 -IC:/GTK/include/glib-2.0 -IC:/GTK/lib/glib-2.0/include -IC:/GTK/include/freetype2 -IC:/GTK/include
Note : ces chemins dépendent de votre installation de gtk (directement sous le C: dans mon cas). Vous pouvez obtenir ces chemins en tapant 'pkg-config --cflags libglade-2.0 gtk+-2.0' dans une console.
****************************************
Etape 2 :
****************************************
2.1 ::::: Modification de l'ordre d'apparaition des macros
Faire click droit sur le projet ->"Properties">"C/C++ Build">"Settings">"Tool settings">"MinGW C Linker"
Dans commande line patern remplacer "${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" par
"${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX} ${OUTPUT} ${INPUTS} ${FLAGS}" (on fait passer la macro FLAGS en dernier)
Note : je n'ai pas bien compris pourquoi il faut inverser les flags (si qu'un a la réponse merci de nous le faire savoir).
2.2 ::::: Définition des différentes options pour le linker
Faire click droit sur le projet ->"Properties">"C/C++ Build">"Settings">"Tool settings">"MinGW C Linker">"Miscellaneous"
Dans la case "Linker flags", rajouter :
-user32 -Wl,-luuid -LC:/GTK/lib -lglade-2.0 -lxml2 -lgtk-win32-2.0 -lgdk-win32-2.0 -lgdi32 -limm32 -lshell32 -lole32 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lpangocairo-1.0 -lcairo -lpangoft2-1.0 -lfontconfig -lfreetype -lz -lpango-1.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
Note : ces chemins dépendent de votre installation de gtk (directement sous le C: dans mon cas). Vous pouvez obtenir ces chemins en tapant 'pkg-config --libs libglade-2.0 gtk+-2.0' dans une console.
En espérant que ca aidera.