.exe Datei viel (!) zu groß

  • C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • .exe Datei viel (!) zu groß

    Hallo,

    ich habe folgendes Problem.
    Ich habe mit Visual Studio 2008 Professional ein sehr einfaches, simples Programm geschrieben. Es gibt einmal einen ganz kurzen Satz aus und speichert zwei Eingaben ein Variablen.

    So, jetzt wollte ich das Programm auf einem anderen Rechner, wo VisualStudio nicht installiert ist, laufen lassen und ging natürlich nicht. So, ich bin folgender Anleitung gefolgt:
    Created by Camtasia Studio 5

    Damit lief es zwar auf dem anderen Rechner, aber das Programm ist ganze 500 kb (!!!) groß. Für eine Textausgabe und zwei -eingaben viel zu viel.

    Jetzt die Frage, wie bekomme ich mit Visual Studio eine c++ datei so gelinkt, dass sie auf anderen Rechnern läuft aber längst nicht so groß ist?
    (Jetzt bitte keine Tipps wie: Benutz Winrar oder so)

    mfg
    Yoda2003
  • 1. Hast du die Debug oder die Release Version kopiert?

    Die Debug ist immer größer!

    2. Du könntest mal proben wieder auf dll umzustellen und dann auf dem Rechner die RunTime zu installieren

    microsoft.com/downloads/detail…0b62a191ee&displaylang=de
    [SIZE=1]
    Was ist der Unterschied zwischen einem U-Boot und MS Windows?
    Keiner, sobald man ein Fenster aufmacht, fangen die Probleme an
    Alle Tips von mir ohne Gewähr und auf eigenes Risiko !!
    UP1 UP2 UP3[/SIZE][SIZE=1]
    [/SIZE]
  • Also, ich möchte schon gern bei Visual Studio bleiben.
    @DOcean: ja, ichabe die Debug genommen, da das die einzige .exe Datei war, die ich in meinem Projekt Ordner finden kann. Wie komm ch an die Release Version?

    Achja, dass mit dem RunTime insallieren möchte ich ungern machen, da nicht jeder, der meine Anwendung bekommt, sie erst umständlich instlliern soll.

    mfg
    Yoda2003
  • Tut mir leid hab ich keinen Plan von...

    Bin kein Visual Studio Nutzer...(guck mal unter den Eigenschaften, oder guck dir nochmal den Screencast an)

    Google liefert aber ein paar Treffer....
    [SIZE=1]
    Was ist der Unterschied zwischen einem U-Boot und MS Windows?
    Keiner, sobald man ein Fenster aufmacht, fangen die Probleme an
    Alle Tips von mir ohne Gewähr und auf eigenes Risiko !!
    UP1 UP2 UP3[/SIZE][SIZE=1]
    [/SIZE]
  • Oben in der Tool-Leiste im VisualStudio neben einem Grünen Pfeil steht Debug. Da kannst du in der Liste Release auswählen und dann das Projekt neu erstellen. Die Exe findest du normalerweise dann im Arbeitsverzeichnis/Release.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • Quellcode

    1. #include<iostream>
    2. #include<string>
    3. #include<conio.h>
    4. using namespace std;
    5. int main()
    6. {
    7. string name, key;
    8. cout << "CrackMe\n\n";
    9. cout << "Name: ";
    10. cin >> name;
    11. cout << "\nKey: ";
    12. cin >> key;
    13. if(key != "l33thaxX0r")
    14. {
    15. cout << "Invalid Key or Name. Please try again.\n";
    16. }
    17. else
    18. {
    19. cout << "\n\nNice Work!!! You Cracked Me!!!\n";
    20. }
    21. getch();
    22. }
    Alles anzeigen


    Sollte ein kleines CrackMe für mich selbst werden.
    Ich weiß, ich speichere den Wert des Strings name umsonst, da ich ihn net brauch, hab ich aber so beabsichtigt, damit man bei der Lösung dieses CrackMes nicht sofort siehst, dass es nur auf den "key" ankommt.

    mfg
    Yoda2003
  • Quellcode

    1. cout << "CrackMe\n\n"<<endl;
    2. cout << "Name: "<<endl;
    3. cin >> name;
    4. cout << "\nKey:"<<endl;
    5. cin >> key;


    das endl am Ende sorge dafür das die Ausgabe auf jeden Fall gemacht wird (Leeren des Buffer) und macht auch ein '\n'.

    Du solltest entweder C++ Fkt. verwenden oder C FKt., cin und getch zu mischen kann nette Effekte geben (verwenden zB unterschiedliche Buffer)

    dann kann nämlich conio.h raus....
    [SIZE=1]
    Was ist der Unterschied zwischen einem U-Boot und MS Windows?
    Keiner, sobald man ein Fenster aufmacht, fangen die Probleme an
    Alle Tips von mir ohne Gewähr und auf eigenes Risiko !!
    UP1 UP2 UP3[/SIZE][SIZE=1]
    [/SIZE]
  • DOceans Tipp würd ich auf jeden Fall beherzigen ;) Dürfte allerdings nicht viel an der Größe der exe ändern. Vielleicht 1 oder 2 kb... wenn überhaupt :)

    An sonsten habe ich mal versucht bei den linkeroptionen noch was zu finden womit man das Programm noch mehr optimieren könnte, konnte da allerdings nicht wirklich mehr rausholen. Das Programm mit den statisch dazu gelinkten Bibliotheken ist um Faktor 10 mal größer als wenn man nicht statisch linkt. Das sieht bei so einem kleinen Programm viel aus, müsste aber bei nem größeren Programm weniger auffallen.

    Interessant wär auf jeden fall mal zu testen wie groß die exe Dateien werden wenn sie mit gcc o.a. kompiliert werden.
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • also bei mir unter Linux (gcc mit normaleinstellungen ist das kompiliert 12K groß). Mit der -S Option (auf Size optimieren) ist es nochmal 2K kleiner.
    Wie macht VS das eigentlich? geht es standardmäßig davon aus, dass auf dem Zielrechner das VC++-distributable package installiert ist oder linkt es die benötigten Libraries statisch?
    [COLOR="Green"]"A dream you dream alone is only a dream. A dream you dream together is reality"[/color]

    John Lennon

    [SIZE=1],,,[/SIZE][SIZE=1]*&#801;&#844;l&#801;*,,,,,,,,,,&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; ,,,,,,,,,*&#801;&#844;l&#801;*,,,,,,,,,,*&#801;&#844;l&#801;*&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; &#801;&#801;&#865;|&#818;&#865;&#818;&#865;&#818;&#865; &#818;&#9643;&#865;&#818; &#818;&#865;&#818;&#865;&#818;&#960;&#818;&#865;&#818;&#865; &#818;&#865;&#818;&#9643;&#818;&#865;&#818;&#865; &#818;|&#801;&#801;&#801; &#801; &#801;&#820;&#305;&#820;&#801;&#801; *&#801;&#844;l&#801;*_,,,,,,,,&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; ,,,,,,,,*&#801;&#844;l&#801;*,,[/SIZE][SIZE=1],,,[/SIZE][SIZE=1],,,,,,&#801;&#801; &#801;&#820;&#305;&#820;&#820;&#801; ,[/SIZE][SIZE=1],,[/SIZE]
    [SIZE="1"][COLOR="Purple"]Up 1[/color][/SIZE] [SIZE="1"] [COLOR="Olive"]Up 2_The_Beatles_Red_Album[/color][/SIZE]
  • hättest du alles gelesen... er will das statisch haben.... damit es auf jedem Rechner läuft...

    Die Optionen wäre aber mal interessant.... -01 -02 -0s
    [SIZE=1]
    Was ist der Unterschied zwischen einem U-Boot und MS Windows?
    Keiner, sobald man ein Fenster aufmacht, fangen die Probleme an
    Alle Tips von mir ohne Gewähr und auf eigenes Risiko !!
    UP1 UP2 UP3[/SIZE][SIZE=1]
    [/SIZE]
  • Liegt doch daran, dass die ganzen Sachen eingebunden werden im #include, die sind auch gross. Und C-ähnliche Sprachen bilden halt grosse .exe, nicht zu vergleichen mit Sprachen wie zB PureBasic.
  • so, meld mich dann auch wieder zu wort xD
    also mit devc++ ist die datei auch riesieg. Von der Größe her evtl. ein ganz kleines bisschen kleiner, nimmt sich aber so gut wie nichts.

    Naja, im Notfall muss ich eben in Zukunft immer eine .dll datei mitgeben, dann muss ich es net statisch linken.

    Btw. mit Packprogramen wie upx (gibt übrigens noch deutlich bessere^^) hab ich die dateigröße tatsächlich auf ein fünftel ca. gebracht, also ca. 100 kb.

    Für mich hat sich also der Thread erledigt, danke für eure Hilfe :)
    @mods: pls closen