[Linker error] undefined reference to ...



  • Hallo,

    ich bekomme immer folgenden Fehler:

    C:\Dev-Cpp\GUI_Server\GUI_ServerFrm.obj In function ZN13GUI\_ServerFrm13generateEmailEPcS0\_': [Linker error] undefined reference tomySMTP::conect(char*, char*, char*, char*, char*, char*, char*)'
    C:\Dev-Cpp\GUI_Server\GUI_ServerFrm.obj ld returned 1 exit status
    C:\Dev-Cpp\GUI_Server\Makefile.win [Build Error] [GUI_Server.exe] Error 1

    ich verstehe es nicht warum.

    #include "mySMTP.h"
    

    ist angegeben und sieht so:

    #ifndef __MYSMTP_h__
    #define __MYSMTP_h__
    
    #include <cstdlib>
    #include <fstream>
    #include <sstream>
    #include <iostream>
    #include <winsock.h>
    #include <shellapi.h>
    #include <string>
    
    class mySMTP{
          public: 
                  mySMTP();
                  virtual ~mySMTP();
                  void conect(char *server, char *sender, char *reciever, char *subject, char *message, char *fname, char *attFile);
    
          private :
    
                 void sendmail(char *server, char *sender, char *reciever, char *subject, char *message, char *fname, char *attFile);
                 void RunApplication(LPCTSTR FileName, LPCTSTR FileParam);       
    };
    #endif
    

    Aufrufen tue ich das ganze in einer anderen klasse so:

    char *server="post.strato.de";
    ....
    char *attFile="C:\\Programme\\gnuplot\\bin\\analyse.jpg";
    mySMTP *mail=new mySMTP();
    mail->conect(server, sender, reciever, subject, message, fname, attFile);
    

    und das produziert den obigen Linker error. Achso, falls wichtig, benutze WinXP und Dev-cpp.
    Hoffe es kann mir jemand helfen, sitzt schon den ganzen Vormittag daran...



  • Hallo

    Meistens muss man noch die passende lib dazulinken.

    chrische



  • Hallo,

    Schau dir einfach mal die Definition von mySMTP::conect an ob sie vorhanden ist, wenn ja ob sie mit der Deklaration übereinstimmt, wenn ja ob die entsprechende cpp mit im Projekt ist (sprich mit gelinkt wird).
    connect schreibt man übrigens mit 2 n. 🙂



  • aber welche?
    In der mySMTP Klasse benutze ich nur die windows Sockets und die entsprechende lib ist gelinkt!



  • Dann hast Du wahrscheinlich die .cpp Datei der mySMTP Klasse schlicht vergessen.



  • connect schreibt man übrigens mit 2 n. 🙂

    hab ich geändert 🙄

    Schau dir einfach mal die Definition von mySMTP::conect an ob sie vorhanden ist

    meinst du das hier in mySMTP.cpp

    void conect(char *server, char *sender, char *reciever, char *subject, char *message, char *fname, char *attFile) { //Connects to a server using "Winsock" 
    .....
    }
    

    ob sie mit der Deklaration übereinstimmt

    ja... s.o.

    entsprechende cpp mit im Projekt ist

    auch ja! deswegen versteh ich das ja auch absolut nicht! 😞



  • sagte ich ja. 🙂
    [edit] Bezog sich auf der vorvorigen Post[edit]



  • Die Definition ist falsch. Sie sollte so aussehen

    void mySMTP::conect(char *server, char *sender, char *reciever, char *subject, char *message, char *fname, char *attFile) { //Connects to a server using "Winsock"
    .....
    }
    


  • DANKE!
    Und das ist mir in den letzten DREI stunden nicht aufgefallen... 😮


Anmelden zum Antworten