IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Problème d'utilisation de CAIRO


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Par défaut Problème d'utilisation de CAIRO
    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

  2. #2
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Cela signifie qu'il ne trouve pas la fonction. Tu as les bons includes, donc ce n'est pas ça.

    Les causes restantes:
    • tu utilises une version de GTK < 2.8
    • tu ne compiles pas avec les bonnes options, et là il faudrait voir les appels à pkg-config qui sont faits dans ton Makefile.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Par défaut
    Bonjour,

    Merci pour ces infos. Mon problème se situait dans le linker, il manquait la référence à la lib "gdk-win32-2.0".

    Merci de votre aide

  4. #4
    Invité de passage
    Profil pro
    Inscrit en
    Février 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 1
    Par défaut
    Citation Envoyé par Ctotomatic Voir le message
    Bonjour,

    Merci pour ces infos. Mon problème se situait dans le linker, il manquait la référence à la lib "gdk-win32-2.0".

    Merci de votre aide
    bonsoir , j'ai le mème problème mais j'ai pas compris comment je le résoudre, en faite mon compilateur n'arrive pas à comprendre cette la fonction create?
    alors comment je peux ajouter gdk-win32-2.0"? donnez moi les étapes une par une.merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RTFEditorKit] Problème d'utilisation
    Par jean.lamy dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 21/10/2004, 18h30
  2. Problème d'utilisation de Mysql avec dev-c++
    Par Watchi dans le forum Dev-C++
    Réponses: 10
    Dernier message: 06/08/2004, 14h35
  3. [cvs] problèmes d'utilisation
    Par gromite dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/06/2004, 17h41
  4. Problème: Requête utilisant NOT IN
    Par fages dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/05/2004, 10h18
  5. problème d'utilisation avec turbo pascal 7.0
    Par le 27 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 03/12/2003, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo