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 :

Variables globales dans fichiers entête


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Variables globales dans fichiers entête
    J'ai un programme avec trois sources .CPP sur UNIX :
    - Un pour le main()
    - Un pour une classe TOTO
    - Un pour une calsse TITI

    J'ai besoin d'inclure un fichier entête fourni avec une librairie. Jusque là tout est normal.
    Sauf que cette librairie déclare des variables globales !

    La compilation de chacun des fichiers fonctionne correctement, mais c'est au link que l'erreur "multiply-defined" ressort.

    Comment faire pour eviter cela sachant que je ne peut pas modifier le fichier entête : : :

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu peux nous montrer la déclaration de cette variable globale ?

  3. #3
    Candidat au Club
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Dans le fichier test.h :
    #ifndef TEST_H
    #define TEST_H
    int variable=0;
    #endif

    Dans le fichier toto.cpp:
    #include "test.h"

    Dans le fichier titi.cpp :
    #include "test.h"

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Points : 83
    Points
    83
    Par défaut
    je suggère :

    Dans le fichier test.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #ifndef TEST_H 
    #define TEST_H 
    extern int variable; 
    #endif
    Dans le fichier toto.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include "test.h" 
    int variable = 0 ;
    Dans le fichier titi.cpp :
    [/code]

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    La bibliothèque que tu utilises est mal foutue, lorsqu'on déclare une variable globale dans un en-tête on précise bien extern devant, sinon ça provoque le genre d'erreur que tu as. En plus les variables globales c'est jamais conseillé dans un bon code C++... Va te plaindre auprès du concepteur ou bien bidouille l'en-tête

  6. #6
    Candidat au Club
    Inscrit en
    Août 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci a tous !

    La librairie appartient a une autre équipe qui ne veut pas vraiment entendre parlé de C++, or cette mauvaise utilisation fonctionne correctement en C !

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

Discussions similaires

  1. Variables globales dans un fichier appelé?
    Par soeursourire dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 04/10/2012, 10h08
  2. Réponses: 6
    Dernier message: 21/07/2009, 11h37
  3. [PHP 5.0] appel d'une variable global dans un autre fichier à partir d'une classe
    Par andry.aime dans le forum Langage
    Réponses: 1
    Dernier message: 13/01/2009, 09h31
  4. Réponses: 1
    Dernier message: 04/04/2008, 16h47
  5. portée des variables globales dans un fichier js
    Par crakazoid dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 14/04/2006, 16h49

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