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 :

Problème de linkage


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 33
    Par défaut Problème de linkage
    Bonjour,
    j'essaie pour la premiere fois de compiler en même temps plusieurs fichiers (un cpp par classe et un header), mais j'ai un soucis que je ne sais pas résoudre.

    J'ai pour faire un test rapide une fonction globale appellée "load_image", que j'ai placé dans config.h qui contient aussi mes constantes
    Mon fichier main inclu config.h
    Mon fichier tileset.cpp pareil

    Tous mes fichiers compilent bien, mais au niveau des liens j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1>TilesLayer.obj : error LNK2005: "struct SDL_Surface * __cdecl load_image(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?load_image@@YAPAUSDL_Surface@@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) déjà défini(e) dans main.obj
    que je ne comprend pas trop : a priori j'ai mis des "ifndef .... endif" dans mes includes, donc je comprend pas trop pourquoi est-ce que ma fonction veut se redéfinir à 2 endroits différents.
    Bien sûr si je n'inclut plus config.h dans mon 2eme fichier, la compilation ne marche plus....
    Une idée?

  2. #2
    Membre actif Avatar de Chessmaster1966
    Inscrit en
    Juillet 2010
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 63
    Par défaut
    Peut-être une inclusion multiple de config.h. Je ne sais pas comment tu as déclaré tes directives de compilation ifndef...endif mais essayes ça si ce n'est pas déjà fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #ifndef CONFIG_H
    #define CONFIG_H
     
    ...
     
    #endif

  3. #3
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 33
    Par défaut
    c'est déjà fait, c'est pour ça que je comprends pas trop
    Après j'ai tout fait au feeling, je ne connais pas du tout la méthode d'organisation quand on a plusieurs .cpp à compiler en même temps

  4. #4
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,

    lezebulon, quand tu dis :
    Citation Envoyé par lezebulon
    J'ai pour faire un test rapide une fonction globale appellée "load_image", que j'ai placé dans config.h qui contient aussi mes constantes
    On est d'accord que tu parles uniquement de la déclaration de la fonction dans config.h, car sa définition est bien dans config.cpp ?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 33
    Par défaut
    Euh... non
    En fait j'ai pas de déclaration séparée, juste la définition.
    Et j'ai pas de config.cpp

    En fait je suis parti d'un fichier de base .cpp codé rapido et j'ai essayé de le porter rapido aussi sur plusieurs fichiers, je sais pas trop quelle convention je dois prendre pour tout ce qui est global

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Ta fonction ne serait défini deux fois,
    une fois dans TilesLayer.cpp et
    une fois dans main.cpp

Discussions similaires

  1. Code::Blocks sous Linux problème de linkage
    Par Invité dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 22/03/2006, 16h54
  2. [Code::Blocks] Problème de linkage: "msvcrt.lib"
    Par skhay dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 14/03/2006, 19h39
  3. Plusieurs fichiers => Problème de Linkage
    Par loic911 dans le forum C++
    Réponses: 6
    Dernier message: 01/03/2006, 00h11
  4. Problème de linkage avec la librairie DevIl
    Par Drannor dans le forum DevIL
    Réponses: 1
    Dernier message: 18/01/2006, 23h05
  5. Problème de linkage
    Par lvdnono dans le forum Windows
    Réponses: 4
    Dernier message: 15/06/2004, 12h32

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