Partage
  • Partager sur Facebook
  • Partager sur Twitter

C++ lier des librairies Devcpp

Sujet résolu
    5 juin 2007 à 11:46:41

    Bonjour, j'ai un petit souci de compilation en C++
    Je bosse sous Windows (vista), avec Devcpp, et lors de la compilation de mon code, on me renvoie le message suivant :
    [Linker error] undefined reference to `machin::bidule()'

    Alors la classe à laquelle fait référence ce message, Machin existe bien, dans un sous dossier du dossier dans lequel se trouve le projet. J'ai plus ou moins compris qu'il fallait donc faire une édition de liens dans Outils -> Options du compilateur. J'ai donc fait un lien -lMachin mais bon ca n'a pas résolu mon problème.... :(
    Quelqu'un peut il me venir en aide please... :euh:
    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2007 à 21:20:15

      Alors je ne sais pas comment marche devcpp mais avec gcc en ligne de commande il faut faire :

      -Lrepertoiredelalibrairie -llalibrairie

      La librairie doit être soit dynamique (.dll sous windows) sous statique (.lib sous windows)

      Si tu as simplement un .o il faut juste passer le fichier en argument de la ligne de commande (pas d'option -l)
      • Partager sur Facebook
      • Partager sur Twitter
        6 juin 2007 à 9:48:59

        Ok, merci déjà, mais le problème c'est que je veux lier une classe, donc juste Machin.h . Pour un avoir un .o il faut bien compiler la classe n'est ce pas? Exemple, après compilation de Machin.h est génèré un Machin.o. Et là évidemment pas de problème, ça passe. Le seul hic c'est que je dispose de nombreuses classes...(récupérées à droite et à gauche) il faut donc que je les compile toutes??? o_O
        • Partager sur Facebook
        • Partager sur Twitter
          6 juin 2007 à 14:43:45

          #include "sousRep/IncludeDeTaClasse.h"

          ca marche pas comme ca ?
          • Partager sur Facebook
          • Partager sur Twitter
            6 juin 2007 à 16:34:14

            Ah bah non ça serait trop simple, :D
            Bon bah je me suis amusé à copier et compiler toutes mes classes et ça a marché, mais je suppose qu'il y a moyen de faire plus simple...
            Quelqu'un maîtrise un peu Devcpp??
            • Partager sur Facebook
            • Partager sur Twitter
              7 juin 2007 à 12:24:03

              Heu... Tu as ajouté le fichier machin.cpp à ton projet au moins ? Si oui, normalement tu ne devrais pas avoir de problèmes, Dev-C++ s'occupe de tout ça pour toi.
              • Partager sur Facebook
              • Partager sur Twitter
              J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                7 juin 2007 à 14:23:55

                Bah en fait je vais préciser ma pensée.
                En fait je mets au point un truc assez lourd, avec une dizaine de classes de mon cru, lesquelles s'appuient sur des classes préexistantes choppées à droite à gauche. Je me demandais donc s'il était possible de les lier au projet, sans les compiler, voilà. (J'ai tous les .h, les .cpp et les include nécéssaires)
                Donc juste pour savoir s'il est possible de lier des .h (auxquels correpondent des .cpp) à un projet sans les compiler :euh:
                • Partager sur Facebook
                • Partager sur Twitter
                  7 juin 2007 à 14:52:50

                  Ben... Non pas trop.
                  Etant donné que tu as besoin de l'implémentation des méthodes dans le CPP, il faut que tu compiles ce cpp pour pouvoir le linker. Sans ça, tu n'a pas accès aux méthodes des classes qui sont donc inutilisables.
                  Le mieux est donc encore d'ajouter les .cpp des classes existantes au projet pour qu'elles soient compilées avec.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                    7 juin 2007 à 16:02:28

                    OK merci bien de cette réponse claire :D
                    C'est un peu relou a effectuer mais bon c'est ce que j'ai fais et tout fonctionne parfaitement :)
                    Merci bien de vos réponses à tous !!!
                    • Partager sur Facebook
                    • Partager sur Twitter

                    C++ lier des librairies Devcpp

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown