GCC kompiliert, aber erstellt keine .exe, der VC++ Compiler jedoch schon...



  • Hi,

    mal eine Frage (ich weiß echt nicht in welches Forum das soll, da es sowohl den VC Compiler als auch GCC berührt. Könnte auch eine Standard-Frage sein ...).

    #include <iostream>
    using namespace std;
    
    class CMsgHndlr
    {
        public :
            static CMsgHndlr * GetMsgHndlr();
        protected :
            CMsgHndlr(){}
            virtual ~CMsgHndlr(){}
            static CMsgHndlr m_MsgHndlr;    // Static instance of Message handler
    
                                            // class.
    };
    
    CMsgHndlr  CMsgHndlr::m_MsgHndlr;
    CMsgHndlr * CMsgHndlr::GetMsgHndlr()        
    {
        return & m_MsgHndlr;
    }
    
    int main()
    {
      cout << "Test..." << endl;
      return 0;
    }
    

    Dieses Codebeispiel wird mit gcc -c test.cpp erfolgreich zu test.o kompiliert. Bei gxx -o test.exe test.o streikt er aber oO

    f:/djgpp/lib/crt0.o:crt0.s:(.data+0xc2): undefined reference to '_main'
    f:/djgpp/lib/libc.a(crt1.o):crt1.c:(.text+0x404): undefined reference to '_main'
    

    Einer eine Idee, woran das liegen könnte? Mit "cl test.cpp" wird erfolgreich die .exe erstellt, die dann auch funktioniert. Eine Frage des Standards? Ich bin echt ratlos, vll. ist es ja auch einfach sehr trivial und ich merks nicht...

    Danke



  • Ähem, du verwendest den gcc um C++ Source zu übersetzen? Ich würde eher den g++ vorschlagen. Egal, folgendes liefert ne exe:

    g++ -o test test.cpp
    

    Eine Frage des Standards?

    Definitiv nicht. Eine Frage, wie man den Compiler aufruft 😉

    Zum VC++ kann ich nichts sagen, aber ich vermute, ein Blick in die Anleitung (msdn) verrät dir, welche Parameter du setzen musst, um die exe zu erhalten.

    MfG

    GPC



  • Wie in meinem letzten Beitrag geschrieben kenne ich mich, was Compiler angeht, gar nicht aus xD

    Ich hab momentan den DJGPP drauf (hab gehört, der sei nicht mehr toll... stimmt das?), also g++ -o irgendwas geht nicht, da er g++ nicht kennt, werde mal den PC durchforsten ...

    Ist g++ == gpp? Damit geht es nämlich bei mir, und der Name läge ja nahe.

    Danke schonmal (wieder)!

    Achja: Wenn ich denn mal den besten(-.-) Compiler gefunden habe, werde ich mich auch mit seinen Optionen und Parametern auseinandersetzen 😉

    Noch was: Mit dem gcc und gxx, so wie ich es eben geschrieben habe, stand es erklärt in der Readme.1st für C++ Files oO Und bis dato hatte es so sogar funktioniert 😉



  • Du könntest MinGW nehmen. Ich bin mir nicht sicher, aber ich meine, der wäre etwas aktueller als der DJGPP.



  • Ok Danke euch! Hab mir MinGW geladen, die Seite spricht auch mehr an 😉 sieht allein von den Datumsanzeigen her aktueller aus! Neuester gcc ist drauf, kann jetzt also auch mit g++ -p test test.cpp arbeiten und klappt alles prima 😃


Anmelden zum Antworten