Was will der DEV-C++???



  • Hi,

    ich habe diesen Quellcode aus Visual C++:

    #include <iostream.h>
    #include <time.h>
    #include <dos.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    typedef unsigned int UI;                     // Definition eines neuen Types
    
    const UI MAX = 30;
    const double VERSION = 0.01;
    
    class player
    {
    private:
        char* m_name;
        int m_rate;
    
    public:
        player(void);
        ~player();
    
        int number;
        int gNumber(int number);
    };
    
    int player::gNumber(int number)
    {
        srand( (unsigned) time(NULL) );
        number = rand() % MAX;
    
        return number;
    }
    
    player::player(void)
    {
        m_rate = 0;
        m_name = 0;
    }
    
    player::~player()
    {
        if(m_name)
        {
            delete m_name;
        }
    }
    
    int main()
    {
        player Iplayer;
    
        cout << "Version: " << VERSION << endl;
        cout << "Zahl: " << Iplayer.gNumber(Iplayer.number) << endl;
    
        return 0;
    }
    

    Wo er auch wunderbar funktionierte in dev-c++ konvertiert da kamen folgende Fehlermeldungen:

    die_entscheidung.o(.text+0x12b):die_entscheidung.cpp: undefined reference to `endl(ostream &)'

    die_entscheidung.o(.text+0x147):die_entscheidung.cpp: undefined reference to cout' die\_entscheidung.o(.text+0x14c):die\_entscheidung.cpp: undefined reference toostream::operator<<(char const *)'
    die_entscheidung.o(.text+0x157):die_entscheidung.cpp: undefined reference to ostream::operator<<(double)' die\_entscheidung.o(.text+0x16d):die\_entscheidung.cpp: undefined reference toendl(ostream &)'
    die_entscheidung.o(.text+0x193):die_entscheidung.cpp: undefined reference to cout' die\_entscheidung.o(.text+0x198):die\_entscheidung.cpp: undefined reference toostream::operator<<(char const *)'
    die_entscheidung.o(.text+0x1a3):die_entscheidung.cpp: undefined reference to `ostream::operator<<(int)'

    make.exe: *** [die_entscheidung.exe] Error 1

    Ausführung beendet

    Was will der jetzt von mir??

    DANKE IM **Voraus!!

    mfg IDK**



  • nochma ohne smilies *g*:

    die_entscheidung.o(.text+0x12b):die_entscheidung.cpp: undefined reference to `endl(ostream &)'

    die_entscheidung.o(.text+0x147):die_entscheidung.cpp: undefined reference to cout' die\_entscheidung.o(.text+0x14c):die\_entscheidung.cpp: undefined reference toostream:perator<<(char const *)'
    die_entscheidung.o(.text+0x157):die_entscheidung.cpp: undefined reference to ostream:perator<<(double)' die\_entscheidung.o(.text+0x16d):die\_entscheidung.cpp: undefined reference toendl(ostream &)'
    die_entscheidung.o(.text+0x193):die_entscheidung.cpp: undefined reference to cout' die\_entscheidung.o(.text+0x198):die\_entscheidung.cpp: undefined reference toostream:perator<<(char const *)'
    die_entscheidung.o(.text+0x1a3):die_entscheidung.cpp: undefined reference to `ostream:perator<<(int)'



  • kA Warum verwende den selber und habe keine Probleme, aber btw solltest du die neuen Header verwenden, der Link von Dimah folgt gleich 😃



  • Hi!
    Versuch mal statt #include <iostream.h>

    #include <iostream>
    using namespace std;
    

    Das könnte der Fehler sein, bin mir bei Undefined Reference nicht sicher obs ein Compiler oder Linkerfehler ist 🙄, denke aber eher Compilerfehler...

    KaPtain Cugel





  • Da Kommt immernoch dieselbe Fehlermeldung:

    #include <iostream>
    #include <time.h>
    #include <dos.h>
    #include <stdlib.h>
    
    using namespace std;
    
    typedef unsigned int UI;                     // Definition eines neuen Types
    
    const UI MAX = 30;
    const double VERSION = 0.01;
    
    class player
    {
    private:
        char* m_name;
        int m_rate;
    
    public:
        player(void);
        ~player();
    
        int number;
        int gNumber(int number);
    };
    
    int player::gNumber(int number)
    {
        srand( (unsigned) time(NULL) );
        number = rand() % MAX;
    
        return number;
    }
    
    player::player(void)
    {
        m_rate = 0;
        m_name = 0;
    }
    
    player::~player()
    {
        if(m_name)
        {
            delete m_name;
        }
    }
    
    int main()
    {
        player Iplayer;
    
        cout << "Version: " << VERSION << endl;
        cout << "Zahl: " << Iplayer.gNumber(Iplayer.number) << endl;
    
        return 0;
    }
    


  • hmm sorry kann dir nicht helfen aber

    typedef unsigned int UI;   // Definition eines neuen Types
    

    ich wollte schon immer wissen wozu typedef ist 🙄



  • Original erstellt von Dimah:
    **hmm sorry kann dir nicht helfen aber

    typedef unsigned int UI;   // Definition eines neuen Types
    

    ich wollte schon immer wissen wozu typedef ist 🙄**

    das ist die allerseits beliebt art des kommentierens... 😃
    also ich mach das auch immer so:

    #include <iostream>  //danke an lars für den hinweis :D
    
    using namspace std;
    
    int main()
    {
      int i; //erzeuge variable i vom typ int
      int j; //erzeuge variable j vom typ int
      cin >> i; //lese variable i von cin ein
      cin >> j; //lese variable j von cin ein  
      int k = i+j //addiere i zu j und weise wert neuer variable k zu
      cout << k;  //gebe wert von k aus (k ist i + j siehe eine anweisung weiter oben)
        cout << endl;  // zeilenende, ausserdem flusht endl den puffer
      return 0;
    }   //hier ist das ende des programms
    

    [ Dieser Beitrag wurde am 28.08.2002 um 17:51 Uhr von japro editiert. ]

    [ Dieser Beitrag wurde am 28.08.2002 um 17:51 Uhr von japro editiert. ]

    [ Dieser Beitrag wurde am 28.08.2002 um 18:06 Uhr von japro editiert. ]



  • ist das Lerzeichen vor #include <iostream> nur hier?
    und btw:
    #include <time> //oder ctime?
    #include <cstdlib>
    und ist dos.h ein Standardheader? ich glaub net oder?



  • Original erstellt von japro:
    **das ist die allerseits beliebt art des kommentierens... 😃
    also ich mach das auch immer so:

    include <iostream>
    
    using namspace std;
    
    int main()
    {
    //...
    

    **

    Du hast vergessen

    include <iostream> // gibt ein Compilerfehler aus
    

    :p

    [ Dieser Beitrag wurde am 28.08.2002 um 17:55 Uhr von Lars Skiba editiert. ]



  • Bitte was gibt einen compiler fehler aus?? past doch!!

    Typedef kann man einen neuen Typen erzeugen. z. B. unsigned short int ist ziemlich lang macht man ma

    typedef unsigned short int UI;

    dann muss man nimmer schreiben:
    unsigned short int var=0;
    sondern:
    UI var = 0;

    einfach verkürtzt falls man das ma öfters braucht.



  • Ach ja der leerraum is nur hier!



  • Original erstellt von <IDK-ZERO>:
    **Was will der jetzt von mir??
    **

    Du linkst die Standard Library nicht dazu...
    Musst mal Compilerdoku lesen und/oder dich ins Andere Compiler Forum verschieben lassen.

    if(m_name)
    {
    delete m_name;
    }
    das ist unnoetig. delete auf einen NULL Zeiger ist IMMER sicher... lass das if also weg 😉



  • ich verschieb den thread mal ins 'ander compiler' forum vieleicht weiss da jemand weiter



  • versuch nal deine source dateien mit ".cpp" enden zu lassen



  • Hmm, ich habe das mal auf meinem Dev-C++ kompiliert und habe keinen Fehler bekommen. Läuft wunderbar. Aber mit anderen Codes hatte ich auch Probleme. Hab auch so ähnliche Fehlermeldungen bekommen.


Anmelden zum Antworten