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

 C Discussion :

Inclure un fichier d'entête


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut Inclure un fichier d'entête
    Bon, je pensais que mon autre question était idiote, mais celle-ci est encore pire (promis, je descend pas plus bas)

    En fait c'est tellement basique que les tutorials ne semble même pas en parler !

    J'ai ce "programme", que j'ai entièrement copié-collé du tutorial:
    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
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    void cb_quit (GtkWidget *, gpointer);
     
    int main (int argc, char **argv)
    {
      GtkWidget *p_window = NULL;
     
      /* Initialisation de GTK+ */
      gtk_init (&argc, &argv);
     
      /* Creation de la fenetre principale de notre application */
      p_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       g_signal_connect (G_OBJECT (p_window), "destroy", G_CALLBACK (cb_quit), NULL);
     
      /* Affichage de la fenetre principale */
      gtk_widget_show (p_window);
      /* Lancement de la boucle principale */
      gtk_main ();
      return EXIT_SUCCESS;
    }
     
    void cb_quit (GtkWidget *p_widget, gpointer user_data)
    {
      gtk_main_quit();
     
      /* Parametres inutilises */
      (void)p_widget;
      (void)user_data;
    }

    Mais quand je veux le compiler, j'ai droit à cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $ gcc app.h 
    app.h:2:21: error: gtk/gtk.h: Aucun fichier ou dossier de ce type
    app.h:4: error: expected ‘)’ before ‘*’ token
    app.h: In function ‘main’:
    app.h:8: error: ‘GtkWidget’ undeclared (first use in this function)
    app.h:8: error: (Each undeclared identifier is reported only once
    app.h:8: error: for each function it appears in.)
    app.h:8: error: ‘p_window’ undeclared (first use in this function)
    app.h:14: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function)
    app.h:15: error: ‘cb_quit’ undeclared (first use in this function)
    app.h: At top level:
    app.h:24: error: expected ‘)’ before ‘*’ token
    $

    Ok, alors ma question est tout simplement:
    Où est-ce que je trouve les fichiers stdlib.h et gtk.h, puisque visiblement, le compilateur ne les localisent pas automatiquement.


    Merci de votre extrème patience, avant je codais des application console avec Visual Studio... la marche est un peu haute.

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    stdlib.h, il l'a trouvé, par contre, c'est different pour gtk.h


    En fait, d'apres les warning/error, tu as juste un probleme : c'est que gtk.h n'est pas trouvé.

    Voici un extrait d'un post :

    Pour inclure un fichier .h se trouvant dans le dossier où est installé votre IDE, vous devez utiliser les chevrons < >

    Pour inclure un fichier .h se trouvant dans le dossier de votre projet, vous devez utiliser les guillemets.


    Cependant, lorsque vous incluez un .h qui se trouve dans le dossier de votre IDE (et donc avec <>), vous devez veiller a bien mettre le bon chemin (si si, c'est un chemin entre les chevrons) et vous devez dire a votre compilateur de lier la librairie.
    Typiquement, "no such file or directory" provient du fait qu'il n'as pas trouvé ou etait le .h, donc mauvais chemin.

    Apres avoir mis le bon chemin, si on a "undefined reference to ...", c'est qu'on a certainement pas lier la librairie.
    Tu as droit a la premiere erreur.
    Pour y remedier, fait une recherche de "gtk.h" sur tout ton pc. Si deja il n'y a aucune reponse, c'est que la librairie n'est meme pas installé.
    Ensuite, quant tu l'as trouvé, regarde ou se situe le .h.

    S'il est directement dans le dossier "include" de ton compilateur, alors mets

    #include <gtk.h>

    Par contre, si le header est dans un sous dossier de "include", copie colle le gtk.h du sous dossier dans "include", puis met

    #include <LeNomDuFameuxDossier/gtk.h>

    En respectant la casse.

    Voila, bon courage pour la suite (et ta question n'est pas bete, on ne comprend pas toujours ce que dit le compilo et on ne sait pas toujours comment y remedier)

  3. #3
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par défaut
    Si tu es sous linux, (après avoir ajouter le package gtk2-0 dev , il faut ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(pkg-config --libs --cflags gtk+-2.0)
    A la ligne de compilation gcc.

Discussions similaires

  1. Inclure des Fichiers .XML et .PPT dans un version PhpBB 1.9
    Par DaddyP dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 20/01/2006, 09h54
  2. [Configuration] Inclure un fichier .c dans une page PHP
    Par Korma dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/01/2006, 12h49
  3. [C#] inclure un fichier css
    Par elendila dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/08/2005, 15h21
  4. Inclure un fichier html
    Par krfa1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 08/02/2005, 14h40
  5. [HTML] inclure un fichier...
    Par mohican13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/01/2005, 17h23

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