Strip.exe (Thanks ;) gelöst)

Für Fragen von Einsteigern und Programmieranfängern...
Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2825
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Strip.exe

Beitrag von m.fuchs »

Bauer321 hat geschrieben:ok danke ich habs jetzt auch hinbekommen die auf 600kb runter zu bekommen mehr aber leider nicht(bei visual basic hat ein vergleichbares programm 23kb ohne das ich noch irgend etwas optimieren muss aber das nur so neben bei)
Nö, ist es nicht, ein Haufen ausgelagerter Code befindet sich in den Runtime-Libraries die auf dem Zielsystem installiert sein müssen.

mfg
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Strip.exe

Beitrag von Euklid »

Bauer321 hat geschrieben:(bei visual basic hat ein vergleichbares programm 23kb ohne das ich noch irgend etwas optimieren muss aber das nur so neben bei)
Ich versuche es Dir mal anschaulich zu erklären: Visual Basic erstellt nicht wirklich "echte" Programme. Die Datei, die Du bei VB erhältst, besteht grob gesagt aus komprimiertem Quelltext (ein "Zwischencode"), das 23kb-Programm ist also kein Maschinencode und wird nicht direkt vom Prozessor ausgeführt. Um VB-Programme ausführen zu können, müssen auf dem Rechner spezielle Bibliotheken installiert sein, die beim Aufruf den Zwischencode erst im Arbeitsspeicher in Maschinencode übersetzen. Sind die Bibliotheken nicht installiert - oder auch nur in einer älteren Version installiert, kann man das Programm dann auch nicht ausführen. Um sicher gehen zu können, dass Dein Programm auf allen Zielrechnern läuft, müsstest Du die Bibliotheken zusammen mit deinem Programm verteilen - insgesamt weit mehr als 23 kb, und da die Bibliotheken auch den Code für Komponenten enthalten die Du garnicht nutzt, auch weit mehr als 600 kb oder 1,2 Mb. Jetzt entscheide selbst, ob das wirklich so vorteilhat ist, wie die Programmgröße es einem weiß machen möchte.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2825
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Strip.exe

Beitrag von m.fuchs »

Euklid hat geschrieben:Ich versuche es Dir mal anschaulich zu erklären: Visual Basic erstellt nicht wirklich "echte" Programme. Die Datei, die Du bei VB erhältst, besteht grob gesagt aus komprimiertem Quelltext (ein "Zwischencode"), das 23kb-Programm ist also kein Maschinencode und wird nicht direkt vom Prozessor ausgeführt.
Einspruch Euer Ehren. Zumindest VB5 und VB6 erzeugen tatsächlich Maschinencode. Was aber nichts an der Notwendigkeit der Laufzeitbibliotheken ändert. Die werden nämlich dabei auch gebraucht, enthalten sie doch die ganzen Komponenten die das Leben des Programmierers leichter machen. Ist im Grund so, als würde man die LCL in mehrere DLLs kompilieren und dann dynamisch in sein Programm linken. Dann dürfte auch das nicht sonderlich groß sein.

Und auch bei den Nachfolgern (VB.NET) ist es ebenso, das .NET-Framework schlägt ja auch gewaltig zu. Und hier wird auch nicht mehr Maschinecode kompiliert (erst beim Ausführen).

Und dann ist es die Frage: kann man das .NET-Framework immer voraussetzen? Oder muss man es immer mit seinem Programm mitliefern (oder wenigstens einen Downloadlink)? Ich persönlich finde Software die ein paar MiB groß ist nicht so schlimm. Das ist heutzutage keine Größe mehr, weder bei Downloads noch bei Datenträgern. Ein kleines Programm und dazu ein größere Bibliothekensammlung ist da schon kritischer.

mfg
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Strip.exe (Thanks ;) gelöst)

Beitrag von Euklid »

Ja, ich bezog mich auf .net; Der Witz ist ja, dass die .net-Version auf den Rechnern der Zielgruppe mindestens so aktuell sein muss wie die Version auf den Rechnern der Programmautoren. D.h. die Programmautoren müssen, um die Ausführbarkeit ihrer Programme sicher zu stellen, .net gleich mit ausliefern, welches über 50 MB groß ist. (womit wir bei einer .net-Diskussion angekommen wären ;) )

- Euklid

Antworten