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

Visual C++ Discussion :

Erreur de Link [VC++ 6.0]


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Avril 2008
    Messages
    81
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par d�faut Erreur de Link [VC++ 6.0]
    Bonjour,
    Je rencontre quelques petits probl�mes avec mes variable globales.

    main.obj : error LNK2005 : struct personne Pers already defined in personne.h

    main.c
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
      #include <stdio.h>
     #include <stdlib.h>
     #include main.h
     #include personne.h
    void main()
    {
        ...
    }
    personne.c
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     #include <stdio.h>
     #include <stdlib.h>
     #include personne.h
     
     ...
    personne.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    struct personne{
      char nom[30];
      int age;
    };
     
    personne Pers;
    Pour remedier a cette erreur j'ai essay� plusieurs solutions
    - #ifndef _PERSONNE_H_
    #define _PERSONNE_H_
    #endif

    - #pragma once

    - extern dans les .c

    M�me sans code dans mes fichiers .c aucune de ces solutions a march�es.

    La seul solution que j'ai trouv�e c'est de d�clar� "personne Pers" dans le personne.c, et de le mettre en extern dans les autres fichiers, solution que je ne trouve pas tr�s "correcte".

    J'ai esssay� de modifier les options du projet, mais cela n'a rien chang�.
    J'ai l'impression que le preprocesseur ne prend pas en compte certaine instruction qui permette de ne pas passer deux fois dans un .h et je ne comprend pas pourquoi.

    Merci de votre aide.

  2. #2
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    dans personne.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    struct personne{
      char nom[30];
      int age;
    };
     
    extern personne Pers;
    dans personne.c
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     #include <stdio.h>
     #include <stdlib.h>
     #include personne.h
     personne Pers;
     ...

  3. #3
    Membre confirm�
    Inscrit en
    Avril 2008
    Messages
    81
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par d�faut
    Je suis entierement d'accord, mais cela ne m'explique pas pourquoi les autres solutions ne fonctionnent pas.

    Je me contanterais des extern ...

  4. #4
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    personne Pers;

    est d�clar� dans deux fichiers lors du link dans main.c et personne.c voil� pourquoi le linker se fache.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. erreur de link
    Par meli0207 dans le forum MFC
    R�ponses: 6
    Dernier message: 04/05/2007, 10h17
  2. template et erreur de link
    Par Willand dans le forum Langage
    R�ponses: 12
    Dernier message: 05/12/2006, 21h19
  3. erreur de link(age) g++
    Par corwin dans le forum Autres �diteurs
    R�ponses: 1
    Dernier message: 05/05/2004, 11h33
  4. [wxWindows] Erreur de link pour ODBC
    Par ovh dans le forum wxWidgets
    R�ponses: 3
    Dernier message: 28/01/2004, 15h38
  5. DirectDrawCreate erreur de link
    Par Ing_Ben dans le forum DirectX
    R�ponses: 1
    Dernier message: 01/12/2002, 18h46

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