Une bug en c

Fermé
sofi - 28 oct. 2011 à 00:20
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 31 oct. 2011 à 19:45
Bonjour,

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:
expose_evt_reaction( GtkWidget *widget, GdkEventExpose *event, gpointer data )
 {
   // c'est la structure qui permet d'afficher dans une zone de dessin
   // via Cairo
   cairo_t* cr ;
   cr=gdk_cairo_create(widget->window);
   cairo_set_source_rgb (cr, 1, 1, 1); // choisit le blanc.
   cairo_paint( cr ); // remplit tout dans la couleur choisie.

   cairo_set_source_rgb (cr, 0, 1, 0);
   cairo_rectangle (cr, 50, 50, 100, 100 );
   cairo_fill_preserve( cr ); // remplit la forme actuelle (un rectangle)

   cairo_set_line_width(cr, 3);
   cairo_set_source_rgb (cr, 0, 0.5, 0);
   cairo_stroke( cr ); // trace la forme actuelle (le même rectangle)

   // On a fini, on peut détruire la structure.
   cairo_destroy (cr);
   return TRUE;
 }

Quelqu'un pourrait-il éclairer ma lanterne?

Merci d'avance.
sinon
alors comment je peux ajouter lib gdk-win32-2.0"?

A voir également:

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
28 oct. 2011 à 08:29
Bonjour, en général ce genre d'erreur viens du fait que tu oublies d'ajouter une bibliothèque lors de l'édition des liens. Il ne trouve pas la fonction.
En ce qui concerne la façon d'ajouter la bibliothèque lors de la compilation, ça dépend de comment tu compile et du compilateur.
0
moi j'utilise le code block , et j'ai déclaré la bibliothèque include<gdk/gdkcairo.h> mais toujours il ne trouve pas la fonction je ne sais pas pourquoi ?
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
28 oct. 2011 à 12:27
parqu'il faut lier avec.
donc un "-lgdkcairo" dans les options de lien (en supposant que tu compile avec gcc).
tu dois avoir quelque part un fichierlibgdkcairo.a ou un truc dans le genre.
0
alors moi je programme en c et j'ai fait les étapes suivante pour inclure ma bibliothèque
prject puis build option puis linker setting et j'ai ajouté cairo mais il y a rien changé?!! est ce que vous avez une explication s'il vous plait
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
31 oct. 2011 à 19:45
pour être sur, il faut regarder les lignes de compilation.
voir ce qui a été ajouté. Et trouver exactement la bonne bibliothèque. Peut être faut il en inclure plusieurs même.
avec l'utilitaire nm, tu peut regarder les différentes entrées des bibliothèques et voir s'il y a la fonction que tu cherches.
0