Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme d' "undefined reference to"

ça commence à me gaver

Sujet résolu
    22 octobre 2008 à 17:40:38

    Bonjour,
    Hier soir je compile mon projet avec code::block et tout marche, ça compile le programme s'exécute bref tout va pour le mieux.
    Aujourd'hui je veux modifier un ptit truc (mettre un pointeur à NULL) et là, au moment du "linkage" je me ramasse une cinquantaine de "undefined reference to" à des méthodes de classe d'une de mes dll utilisée pour le projet (la dll n'a pas été touchée depuis la dernière compilation réussie).

    J'espère que vous pourrez m'aider parce que la je commence vraiment à m'énerver , j'ai perdu complètement 1h30 à cause de cette connerie et j'ai pas que ça à faire.
    :colere2:

    merci d'avance.


    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2008 à 17:50:25

      Tu peux nous donner le rapport d'erreur complet et un peut de code aussi s'il te plait ?
      • Partager sur Facebook
      • Partager sur Twitter
        22 octobre 2008 à 17:59:07

        voila le rapport d'erreur :
        obj\Release\main.o:main.cpp:(.text+0x2b)||undefined reference to `Dialog::errormessage(char*, char*)'|
        obj\Release\main.o:main.cpp:(.text+0x42e)||undefined reference to `Dialog::errormessage(char*, char*)'|
        obj\Release\src\Aboutwin.o:Aboutwin.cpp:(.text+0x375)||undefined reference to `Picture::Picture(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Connectwin.o:Connectwin.cpp:(.text+0x3fb)||undefined reference to `Label::Label(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Connectwin.o:Connectwin.cpp:(.text+0x467)||undefined reference to `Label::Label(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Connectwin.o:Connectwin.cpp:(.text+0x4e7)||undefined reference to `Button::Button(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Connectwin.o:Connectwin.cpp:(.text+0x58e)||undefined reference to `Button::Button(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Gen_options.o:Gen_options.cpp:(.text+0xb26)||undefined reference to `Dialog::errormessage(char*, char*)'|
        obj\Release\src\Gen_options.o:Gen_options.cpp:(.text+0x1906)||undefined reference to `Dialog::errormessage(char*, char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x82e)||undefined reference to `Menu::additem(char*, void (*)(void*, void*), void*, void*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x88e)||undefined reference to `Menu::additem(char*, void (*)(void*, void*), void*, void*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x8c1)||undefined reference to `Menu::additem(char*, void (*)(void*, void*), void*, void*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x932)||undefined reference to `Menu::additem(char*, void (*)(void*, void*), void*, void*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x96c)||undefined reference to `Menu::additem(char*, void (*)(void*, void*), void*, void*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xad6)||undefined reference to `Menu::modifyitem(int, char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xb90)||undefined reference to `Menu::modifyitem(int, char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xc9d)||undefined reference to `Textedit::operator<<(char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xcae)||undefined reference to `Textedit::operator<<(char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xce9)||undefined reference to `Textedit::operator<<(char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xcfa)||undefined reference to `Textedit::operator<<(char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xd49)||undefined reference to `Textedit::operator<<(char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xe8d)||undefined reference to `Menu::modifyitem(int, char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0xf09)||undefined reference to `Menu::modifyitem(int, char*)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x102f)||undefined reference to `Window::Window(char*, char*, long, long, long, long, bool, int)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x1207)||undefined reference to `Textedit::Textedit(Smain*, char*, long, long, long, long, int)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x175f)||undefined reference to `Window::Window(char*, char*, long, long, long, long, bool, int)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x1937)||undefined reference to `Textedit::Textedit(Smain*, char*, long, long, long, long, int)'|
        obj\Release\src\Mainclass.o:Mainclass.cpp:(.text+0x1ecb)||undefined reference to `Menu::modifyitem(int, char*)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x823)||undefined reference to `Button::picture(char*, int, int, int, int)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x849)||undefined reference to `Button::setcaption(char*)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0xa05)||undefined reference to `Button::picture(char*, int, int, int, int)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0xa2b)||undefined reference to `Button::setcaption(char*)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0xc77)||undefined reference to `Dialog::waringmessage(char*, char*)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0xe2a)||undefined reference to `Listview::additem(char*, char*, int, int)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0xe57)||undefined reference to `Listview::additem(char*, int, int, int)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0xe82)||undefined reference to `Listview::additem(char*, int, int, int)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x15c9)||undefined reference to `Dialog::folderdialog(char*, char*, long)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x1669)||undefined reference to `Dialog::fileopendialog(char*, char*, long)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x1b41)||undefined reference to `Dialog::errormessage(char*, char*)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x3207)||undefined reference to `Tab::Tab(Smain*, char*, long, long, long, long, char*)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x32d3)||undefined reference to `Groupbox::Groupbox(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x3370)||undefined reference to `Checkbox::Checkbox(Smain*, char*, long, long, long, long, bool)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x340d)||undefined reference to `Checkbox::Checkbox(Smain*, char*, long, long, long, long, bool)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x3489)||undefined reference to `Groupbox::Groupbox(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x352c)||undefined reference to `Label::Label(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x35bd)||undefined reference to `Textbox::Textbox(Smain*, char*, long, long, long, long, int)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x3669)||undefined reference to `Label::Label(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x36f7)||undefined reference to `Textbox::Textbox(Smain*, char*, long, long, long, long, int)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x37a3)||undefined reference to `Label::Label(Smain*, char*, long, long, long, long)'|
        obj\Release\src\Optionwin.o:Optionwin.cpp:(.text+0x3834)||undefined reference to `Textbox::Textbox(Smain*, char*, long, long, long, long, int)'|
        ||More errors follow but not being shown.|
        ||Edit the max errors limit in compiler options...|
        ||=== Build finished: 50 errors, 0 warnings ===|


        je peux mettre du code si tu veux mais je vois pas à quoi ça va servir :

        #include <iostream>
        #include "include\Mainclass.h"
        #include "include\sguipp\Dialog.h"
        #include <Tlhelp32.h>
        
        #define OPTIONSFILES "config\\options.opt"
        #define PERMOPTIONS "config\\permoptions.opt"
        #define VERSION "config\\version.opt"
        #define FRENCH "lang\\fra.lang"
        #define ENGLISH "lang\\eng.lang"
        
        #define AJOUTERBMP "icones\\Ajouter.bmp"
        #define DOSSIERBMP "icones\\dossier.bmp"
        #define FENETREBMP "icones\\Fenetre_V1.bmp"
        #define FILEBMP "icones\\file.bmp"
        #define IACTIF "icones\\icone_actif.ico"
        #define INOACTIF "icones\\icone_error.ico"
        #define SUPRBMP "icones\\Supprimer.bmp"
        
        using namespace std;
        
        bool corectfilesandfoders()//verifie que tous les fichiers sont là 
        {
         if (!PathFileExists(OPTIONSFILES)){Dialog::errormessage(OPTIONSFILES" missing","error");return false;}
         if (!PathFileExists(PERMOPTIONS)){Dialog::errormessage(PERMOPTIONS" missing","error");return false;}
         if (!PathFileExists(VERSION)){Dialog::errormessage(VERSION" missing","error");return false;}
         if (!PathFileExists(FRENCH)){Dialog::errormessage(FRENCH" missing","error");return false;}
         if (!PathFileExists(ENGLISH)){Dialog::errormessage(ENGLISH" missing","error");return false;}
         if (!PathFileExists(AJOUTERBMP)){Dialog::errormessage(AJOUTERBMP" missing","error");return false;}
         if (!PathFileExists(DOSSIERBMP)){Dialog::errormessage(DOSSIERBMP" missing","error");return false;}
         if (!PathFileExists(FENETREBMP)){Dialog::errormessage(FENETREBMP" missing","error");return false;}
         if (!PathFileExists(FILEBMP)){Dialog::errormessage(FILEBMP" missing","error");return false;}
         if (!PathFileExists(IACTIF)){Dialog::errormessage(IACTIF" missing","error");return false;}
         if (!PathFileExists(INOACTIF)){Dialog::errormessage(INOACTIF" missing","error");return false;}
         if (!PathFileExists(SUPRBMP)){Dialog::errormessage(SUPRBMP" missing","error");return false;}
         return true;
        }
        
        bool isalreadyrun(char *progname)//verifie que le programme ne tourne pas déjà. methode alakon, je ferais avec les instances plus tard
        {
          HANDLE ht=NULL;
          bool tf;
          int cm=0;
          PROCESSENTRY32 proc;
          ht=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,TH32CS_SNAPALL);
          tf=Process32First(ht,&proc);
          do
          {
           tf=Process32Next(ht,&proc);
           if(strcmp(proc.szExeFile,progname)==0)
            {
             if (cm==2){Dialog::errormessage("WTF_server.exe is already running","error");return false;} 
             cm+=1;
            }
          }
          while (tf);
        
         return true;
        }
        
        
        int main(int argc, char *argv[])
        {
           if (isalreadyrun(PathFindFileName(argv[0])))
            {
              if (corectfilesandfoders())
               {
                Mainclass program;
                return program.run();
               }
              else
               {return -1;}
            }
           else
            {return -1;}
        }
        




        • Partager sur Facebook
        • Partager sur Twitter
          23 octobre 2008 à 9:59:39

          Tu utilise une librairies particuliére ?
          Je dirais que ton problême viens d'un #include manquant
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            23 octobre 2008 à 10:02:59

            Citation : naincendiaire

            Je dirais que ton problême viens d'un #include manquant

            Sans le include se serait un problème de 'ce type n'existe pas'. Les références manquantes sont des erreurs lors de l'édition des liens (linker).
            • Partager sur Facebook
            • Partager sur Twitter
              23 octobre 2008 à 19:07:49

              en fait le problème venait d'une lib que j'utilise et que j'avais modifiée quelque jours avant. Quand je compilait mon projet, ça compilait uniquement une partie qui n'utilise pas cette lib. Le truc que j'ai voulu changer se trouvait justement dans une partie qui utilise cette lib donc ça à foiré.
              C'est de ma faute, quand j'ai modifié la lib j'aurais aussi du modifier mon programme en conséquence et tout recompiler, mais hier j'avais oublié cette modification de ma lib donc bon...

              voilà je me suis énervé pour rien. :lol:
              • Partager sur Facebook
              • Partager sur Twitter

              probleme d' "undefined reference to"

              × 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