Salut a tous !
Dans le cadre du dévellopement d'un jeux de morpion, je suis amené, pour gérer l'affichage à utiliser la fonction gdk_pixbuf_new_from_file.
Seulement, lors des tests il est apparût qu'elle occasionait une erreur de segmentation. Ne trouvant pas l'erreur, j'ai décidé de tester un petit programme n'utilisant que cette fonction pour voire ce que ça donne.
Le voici :
Pour la compilation, j'ai utilisé la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <stdio.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <glib/gprintf.h> int main (void) { GError * error = NULL; GdkPixbuf* pPixBufA; pPixBufA = gdk_pixbuf_new_from_file("/usr/share/pixmaps/arch-logo.png", &error); if (pPixBufA == NULL && error != NULL) { g_printf ("%s\n", error->message); g_error_free (error); } }
A l'execution, le programme me renvoie ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part gcc -g main.c -o main `pkg-config --cflags --libs gtk+-2.0 gthread-2.0 gobject-2.0`
En debugant avec gdb, j'oberve que l'exection se termine à cause d'un segmentation fault.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 (process:11344): GLib-GObject-CRITICAL **: gtype.c:2458: initialization assertion failed, use IA__g_type_init() prior to this function (process:11344): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed (process:11344): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed
Voici ce que m'indique gdb :
Donc voilà j'aimerai donc savoir pourquoi ces petites lignes de codes génèrent ces erreurs, ce qui me semble assez bizarre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Program received signal SIGSEGV, Segmentation fault. 0x00007f5c15580e66 in gdk_pixbuf_new_from_data () from /usr/lib/libgdk_pixbuf-2.0.so.0
Merci d'avance pour votre aide.
Partager