Zu großes Endprodukt beim DJGPP



  • Wie kann es sein, dass diese mickrige Datei (Beispiel aus dem Buch "C++ Entpackt") als EXE 243200 Byte groß wird!

    #include<iostream>
    
    using namespace std;
    
    class base {
     public: virtual void vfunc(){   cout<<"Das ist vfunc() von base.\n";
     }
    
    } ;
    
    class derived1 : public base {
      public: void vfunc() {cout<<"Das ist vfunc() von derived1.\n";}
    };
    
    class derived2 : public base {
      public: void vfunc() {cout<<"Das ist vfunc() von derived2.\n";}
    };
    
    int main()
    {
      base *p, b;
      derived1 d1;
      derived2 d2;
    
      p= &b;
      p->vfunc();
      p=&d1;
      p->vfunc();
      p=&d2;
      p->vfunc();
      return 0;
    
    }
    

    Mit RHIDE (DJGPP, GCC 3.04) wird wie folgt kompiliert:

    gcc -Ic:/cpp/include -g1 -O3 -Os -fexpensive-optimizations -s -c vklassen.cpp -o ../temp/vklassen.o

    gcc -Lc:/djgpp/lib -s -o vklassen.exe ../temp/vklassen.o -pg -lstdcxx

    Wie muss ich die Optionen ändern, dass sich die Größe der kompilierten Datei auf ein vernünftiges Maß herunterschrauben lässt, wenn man die Dateigröße überhaupt verringern kann. Ich bitte um konkrete Antworten. Und gibt es irgendwo eine deutschsprachige Dokumentation für die GCC-Compiler?

    Frage: Kann es sein, dass die Suchfunktion verschwunden ist?



  • Der Compiler schalter "fexpensive-optimizations" kommt mir etwas suspekt vor. Kann es sein dass dadurch größerer Code erzeugt wird?

    Und schon wieder eine (sinnlose?) Diskussion über exe-Größen, obwohl heutzutage 200kb ja wohl wirklich nicht den weltuntergang bedeuten. 😉


Anmelden zum Antworten