DevCpp erzeugt rießige Dateien



  • 🙂 schrieb:

    Hat auch weniger was mit DevC++ als mit dem GCC zu tun. Wahrscheinlich benutzt du die iostreams, die durch das statische zulinken die .exe so aufblähen.

    *dummfrag*

    hmm... macht es eigentlich Sinn, eine Library wie Teile der STL statisch zu linken, wenn die an und fuer sich doch auf jedem PC vorhanden sein sollten? (ich geh einfach mal davon aus, dass es irgendwo in Windows/System(32) auch eine STL-DLL gibt)

    /dummfrag



  • Jo das liegt an der iostream wenn du bloß sagen wir mal ein hello world machst nimm statt iostream die cstdio.

    hier mußt du aber jetzt statt cout - printf benutzen.

    Hello World mit iostream = ca 400kb -> mit strip -s sind es immernoch ca 200kb
    Hello World mit cstdio = ca 20kb -> mit strip -s sind es dann ca 10kb

    und 10 KB sind immernoch zuviel für ein Hello was kann man noch machen?

    mfg Maxx



    1. Die STL ist eine template-library, und damit nur begrenzt DLL-fähig (nur für bekannte parametrisierungen)
    2. jeder Compiler kommt i.a. mit seinen eigenen Laufzeit-DLL's.
    3. Es gibt verschiedene Implementierungen der STL, mit verschiedenen Ansprüchen und Kompromissen


  • und 10 KB sind immernoch zuviel für ein Hello was kann man noch machen?

    z.B:

    copy con helloworld.com
    X5O!P%@AP[4\PZX54(P^)7CC)7}$HELLO WORLD!                       $H+H*
    ^Z
    helloworld.com
    

    (mußt alerdings evtl laufendes Antivirus-Programm ausschalten 🕶 )

    Mehr infos hier: http://www.google.com/search?q=EICAR



  • Kommt auch immer ganz gut wenn man die Option "Strip EXE" (auf Deutsch etwas unglücklich "EXE entfernen") anmacht. Die sorgt dafür, das unreferenzierte Funktionen die beim dazulinken diverser Libs in die EXE kommen, aus der EXE entfernt werden.



  • aha. ich glaub nicht das es was mit den iostreams zu tun hat. ich habs mal ausprobiert und ein hello programm unter linux mit gcc compiliert und hab eine etwa 20kb große datei erhalten. genau das gleiche programm unter devcpp war 20mal größer!



  • muhkuhmasta schrieb:

    aha. ich glaub nicht das es was mit den iostreams zu tun hat. ich habs mal ausprobiert und ein hello programm unter linux mit gcc compiliert und hab eine etwa 20kb große datei erhalten. genau das gleiche programm unter devcpp war 20mal größer!

    Hallo,

    Das selbe habe ich auch mal im Supportforum von Dev-Cpp gepostet!

    Hab leider das selbe Problem 😕



  • http://www.mingw.org/mingwfaq.shtml#faq-C++size

    Da stehts schwarz auf weiss: iostream wird statisch gelinkt und ist verantwortlich für die relativ grossen exe-Files. Und die Gründe stehen auch gleich dabei. Der MinGW ist eben nicht identisch mit dem gcc unter Linux, sondern ist eine Portierung für Windows, die eben gewisse Eigenheiten hat...

    Gruss Andreas



  • ich frag mich, was ihr gegen große exe-dateien habt... 😃
    unter object pascal ist das gang und gebe, da alle bibliotheken statisch eingebunden werden...
    das ist wesentlich besser als wie bei VB, wo man dann die ganzen run-times in umso größeren setups mit sich rumschleppen muss...

    wfg,
    ShiKai



  • riesige dateien verbrauchen paltz und es dauert ewig sie hoch und runterzuladen. ausserdem isses scheiße wenn schon einfache programme nicht mehr auf disketten passen. und pascal stinkt 😉

    🤡



  • Der gesunde Menschenverstand sagt einem wohl, dass es weitaus günstiger ist, dass sich mehrere Applikationen die selben Runtimes teilen, als jede ihre eigenen statisch gelinkten lädt.

    P.S.: es heißt immer noch riesig @ muhkuhmasta.



  • Nu is' aber gut! Für ein geschenktes Progrämmchen ist Dev-C++ hervorragend. Wer nimmt denn heute noch Diskettchen? Wie wär's mit USB-Stick, oder, wenn unbedingt Diskette, dann LS 120. 😃



  • hast ja recht aber wenn keiner meckert werden die entwickler sich auch nicht dazu angespornt fühlen eine bessere version rauszubringen.

    und ausserdem: ich benutze noch disketten!!! die sind einfach ideal wenn man nem freund was kleines (betonung liegt hier auf klein) geben will... sie sind einfach wegwerfware, die man nicht zurückfordern braucht 👍


Anmelden zum Antworten