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 :

Erreur de compilation


Sujet :

GTK+ avec C & C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 46
    Par défaut Erreur de compilation
    Bonjour

    Je débute avec gtk mais je possède un manuel d'apprentissage qui fournit des exemples à compiler, ce que j'ai fait en respectant à la lettre les indications (livre de David Odin).
    J'ai tenté de compiler le programme sur une autre machine (Gnu/linux Debian Lenny), j'ai le même message d'erreur.

    Fichier makefile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CC = `pkg-config --libs --cflags gtk+-2.0`
     
    argument : argument.c
            gcc $(CC) $< -o $@
    Code d'erreur après compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     undefined reference to `gtk_object_query_args'
    Voici le fichier source :
    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
     
    /* Affiche argument */
    #include <stdio.h>
    #include <gtk/gtk.h>
     
    void main(int argc, char *argv[])
    {
      GtkType type;
      GtkArg *args;
      GtkWidget *Frame;
      guint nb_args, i;
     
      /* Initialisation des bibliothèques de GTK+ */
      gtk_init(&argc, &argv);
      Frame = gtk_frame_new("");
      type = gtk_frame_get_type();
      /* Récupération de la liste des arguments supportés */
      args = gtk_object_query_args(type, NULL, &nb_args);
      /* Affichage */
      printf("Arguments des %s : \n",
             gtk_type_name(type));
      for (i=0 ; i<nb_args ; i++)
      {
        printf("  %s, de type %s\n",
               args[i].name,
               gtk_type_name(args[i].type));
      }
      /* Libération de la mémoire utilisée */
      g_free(args);
    }
    Merci pour votre aide.
    zk

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut
    Bonjour Zerimbak,

    Je ne sais pas quelle version de Gtk tu utilises mais il me semble que la fonction "gtk_object_query_args" est obsolète depuis un ptit moment. De quand date ton édition de ce livre ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 46
    Par défaut
    Bonjour,

    En effet mon livre est un peu ancien, il date de 2000.
    Je suis un peu surpris qu'il n'y ai pas de compatibilité ascendante entre les différentes versions de gtk.
    Y a-t-il un outil ou quelque chose dans le genre qui permet de trouver une fonction qui de remplacement par rapport à celles qui sont devenue obsolètes ?

    Merci pour ton aide
    zk

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 16
    Par défaut
    Je vais te donner une réponse mais pas très fournie. Les plus vieux utilisateurs de Gtk sauront t'en dire plus.

    Bientôt, une nouvelle évolution majeure va avoir lieu avec Gtk3. Dans la documentation, il est fait mention des fonctions de Gtk2 qui vont devenir obsolètes. Par exemple ici : http://library.gnome.org/devel/gdk/u...-keyboard-grab Et la documentation donne une solution de rechange avec la nouvelle façon de programmer/utiliser la bibliothèque.

    La compatibilité ascendante est maintenue la plupart du temps mais l'évolution vers des versions récentes impose de laisser tomber quelques outils (par exemple Gdk va être partiellement amputé avec Gtk3 et le nouveau code utilisera de plus en plus Cairo cf le post récent de Gérald à ce sujet). La question que tu soulèves a été discutée ici : http://gtk.developpez.com/actu/9234/...ltiplateformes

    Pour ce qui te concerne, j'ai bien peur que la documentation d'il y a 10 ans fasse défaut et que tu ne puisses pas remplacer simplement ta fonction par une autre qui te ferait le même travail. Si tu demandes plus précisément ce que tu veux faire et comprendre, tu trouveras des gens pour t'aider ici.

  5. #5
    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
    Citation Envoyé par zerimbak Voir le message
    En effet mon livre est un peu ancien, il date de 2000.
    Je suis un peu surpris qu'il n'y ai pas de compatibilité ascendante entre les différentes versions de gtk.
    Il y en a, mais il y a rupture de compatibilité au bout de quelques années, pour pouvoir faire place nette et faire évoluer le toolkit. Ta documentation de 2000 parle de GTK1. GTK2 est sorti en 2002, entraînant une rupture de compatibilité avec GTK1. Et en début d'année prochaine, c'est GTK3 qui chassera GTK2.
    4 ans, puis 9 ans pour rompre la compatibilité, je pense que c'est assez acceptable, non ?

    En revanche, entre chaque version mineure qui sort tous les 6 mois-1 an, la compatibilité est conservée (GTK 2.6, 2.8, ..., 2.22 sont compatibles).

Discussions similaires

  1. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  2. Réponses: 2
    Dernier message: 23/09/2003, 14h32
  3. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  4. Réponses: 4
    Dernier message: 27/08/2003, 21h34
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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