Erreurs de compilation

Signaler
Messages postés
1
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
22 mai 2008
-
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
-
Bonjour à tous,
J'ai un programme en GTK+ que j'essaye de compiler sous visualC++ express 2005.
Lorsque je compile, j'ai les erreurs suivantes:


error C2275: 'GdkPixbuf' : illegal use of this type as an expression
            see declaration of 'GdkPixbuf'
error C2065: 'pixel' : undeclared identifier
error C2275: 'guchar' : illegal use of this type as an expression
            see declaration of 'guchar'
error C2065: 'data' : undeclared identifier
warning C4047: '=' : 'int' differs in levels of indirection from 'GdkPixbuf *'
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_pixels' : different types for formal and actual parameter 1
warning C4047: '=' : 'int' differs in levels of indirection from 'guchar *'
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'const GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gdk_pixbuf_get_width' : different types for formal and actual parameter 1
error C2109: subscript requires array or pointer type
warning C4047: 'function' : 'GdkPixbuf *' differs in levels of indirection from 'int'
warning C4024: 'gtk_image_new_from_pixbuf' : different types for formal and actual parameter 1
warning C4022: 'g_object_unref' : pointer mismatch for actual parameter 1
warning C4047: '=' : 'int' differs in levels of indirection from 'void *'


Cependant, j'ai bien mis #include <gtk/gtk.h> en en-tête.


J'ai également mis les lignes suivantes dans les options du compilateur:


Répertoire du Dossier Bin (contenant les dll, etc...) :
C:\Program Files\Pack GTK+\bin


Répertoire du dossier Lib (contenant le fichiers .lib) :
C:\Program Files\Pack GTK+\lib


Répertoire des dossiers Include (contenant les fichiers .h et .c) :
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


De plus j'ai également ajouté les lignes suivantes dans project-> properties -> linker -> input -> additional dependencies:


glib-2.0.lib
pangocairo-1.0.lib
pangowin32-1.0.lib
atk-1.0.lib
gdk_pixbuf-2.0.lib
gdk-win32-2.0.lib
pango-1.0.lib
gmodule-2.0.lib
gobject-2.0.lib
gthread-2.0.lib
gtk-win32-2.0.lib
cairo.lib


Enfin, j'ai fait la manipulation suivante :


Pour Visual C++, il faut modifier les ressources du logiciel pour que les Dépendances supplémentaires soient automatiquement mises dans les Options des Projets  .


Allez donc dans le dossier VCProjectDefaults qui se trouve dans les ressources du logiciel, par défaut ici :
C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults
Ouvrez le fichier corewin_express.vsprops avec un éditeur de texte.
Remplacez la ligne 8 par :
AdditionalDependencies = "kernel32.lib glib-2.0.lib pangocairo-1.0.lib pangowin32-1.0.lib atk-1.0.lib gdk_pixbuf-2.0.lib gdk-win32-2.0.lib pango-1.0.lib gmodule-2.0.lib gobject-2.0.lib gthread-2.0.lib gtk-win32-2.0.lib cairo.lib"/>




Je ne sais vraiment pas d'où vient l'erreur et je ne sais plus quoi faire pour faire fonctionner mon programme. En espérant trouver réponse parmi vous.
Merci d'avance.

1 réponse

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Rajoutes
#include <gtk/gdk.h>
ou
#include <gdk/gdk.h>
ou
Cherches ce fichier dans le répertoire pour savoir ou il est.