Bonjour a tous,

Je me permet de vous demander de l'aide car voila 3 jours que je but sur un problème (qui ne doit pas en être un) lors de l'utilisation de cairo avec GTK+.

Mon problème est le suivant:

J'ai un défaut "undefined reference to `gdk_cairo_create' " lors de la compilation de mon code ci dessous:
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <cairo.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
 
 
 
gboolean on_expose_event(GtkWidget *widget,GdkEventExpose *event,gpointer data)
{
  cairo_t *cr;
 
  cr = gdk_cairo_create(widget->window);
 
  cairo_set_source_rgb(cr, 0, 0, 0);
  cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_NORMAL,
      CAIRO_FONT_WEIGHT_NORMAL);
  cairo_set_font_size(cr, 40.0);
 
  cairo_move_to(cr, 10.0, 50.0);
  cairo_show_text(cr, "Test CAIRO");
 
  cairo_destroy(cr);
 
  return FALSE;
}
 
 
int main (int argc, char *argv[])
{
 
  GtkWidget *fenetre;
 
 
 
    /*init de GTK+*/
  gtk_init(&argc, &argv);
 
    /* création de la fenêtre principale*/
  fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_position(GTK_WINDOW(fenetre), GTK_WIN_POS_CENTER);
  gtk_widget_set_app_paintable(fenetre, TRUE);
  /* connection au signal destroy*/
  g_signal_connect(fenetre, "destroy",G_CALLBACK (gtk_main_quit), NULL);
  /*connection au signal expose event de la fenetre*/
  g_signal_connect(fenetre, "expose-event",G_CALLBACK (on_expose_event), NULL);
 
 
 
 /*affichage de la fenetre et de tout son contenu*/
  gtk_widget_show_all(fenetre);
 
 
/* boucle ecvennementielle GTK+*/
  gtk_main();
 
  return 0;
}
Pourtant, lors de mes différent essai, cairo fonctionne si je lui demande de faire une sortie en format fichier (PNG, PDF et SVG).

JE ne comprend pas pourquoi car dans tous les tutos ou exemples que j'ai pu trouver, tout le monde fais comme cela. J'ai cependant un doute sur le fait que "widget->window" me renvoi bien un type GDKdrawable.

Quelqu'un pourrait-il éclairer ma lanterne?

Merci d'avance.

Edit: Je travail avec codeblock sous XP pro