Ich benutze Mingw Compiler auf Windows-Umgebung. Wenn ich ein Hallo-Welt-Programm mit Iostream mit diesen Flags kompiliere: g++ hello.cpp -static -s
Ausgabe ist 967 kb. Wenn ich g++ hello.cpp -s
verwende, ist die Ausgabe 16 KB, aber es gibt libgcc_s_dw2-1.dll fehlender Fehler auf anderen Computern. Wie kann ich es mit akzeptabler Dateigröße erstellen?C++ - statische Flag macht ausführbare Datei zu groß
0
A
Antwort
0
Sie könnten versuchen, die Debug-Informationen aus Ihrer ausführbaren Datei mit strip zu entfernen, um die Größe etwas zu reduzieren, aber das macht das Debuggen es direkt etwas schwierig.
Verwandte Themen
- 1. C ausführbare Datei sofort zurück
- 2. Ausführbare ausführbare Datei aus Speicher
- 3. Datei hochladen zu groß
- 4. TextWriterTraceListener-Trace-Datei zu groß
- 5. konvertieren C ausführbare Datei in SIS-Format
- 6. Sandboxing eine ausführbare Datei in C
- 7. Warum ausführbare Datei gefunden
- 8. Elegante Art, große statische typsichere Wörterbuch in Java zu halten - oder Code zu groß zu vermeiden
- 9. Executable ist zu groß
- 10. Warum ist meine statische Bibliothek so groß?
- 11. Datei zu groß Fehlerbehandlung Nodejs Express Multer
- 12. Was macht das Enable-Flag für Service?
- 13. Wie groß ist "zu groß" für eine Javascript-Datei
- 14. Maven ausführbare Datei nicht
- 15. Python-Datei ausführbare Fehler
- 16. Flag Enum in C#
- 17. Große Datei in ausführbare Datei kodieren?
- 18. Macht (C++ - {Vorlagen}) = Macht (C++)?
- 19. Kompilierte C++ - ausführbare Dateien RIESIG?
- 20. Excel-Arbeitsmappe Verbindung macht Dateigröße groß
- 21. Pickle Datei zu groß zum Laden
- 22. Intel XDK 3400 APK-Datei zu groß
- 23. sql Log-Datei wächst zu groß
- 24. Kann das -ObjC-Flag selektiv auf statische Bibliotheken angewendet werden?
- 25. OverflowError Python int zu groß zum Umwandeln in C lang
- 26. Bat-Datei zum Lesen Flag
- 27. Wie macht String.Contains die Groß-/Kleinschreibung aus?
- 28. Statische Verknüpfung von C++ Code
- 29. Wie erzwinge die Einbindung einer Objektdatei in eine statische Bibliothek beim Verknüpfen in eine ausführbare Datei?
- 30. Compiler ausführbare Datei csc.exe nicht
Was Sie wahrscheinlich finden, ist, dass die eigentliche Bibliothek 'libgcc_s_dw2-1.dll' eine viel größere Größe als beide Binärdateien haben wird. Wenn Sie also die ausführbare Datei neben der mingw shared library verteilen, erhöht sich die Gesamtgröße. Dies ist mit der Ausnahme, dass Sie eine große Anzahl von Mingw mit freigegebenen Bibliotheken auf einem bestimmten System haben. Auch warum ist 967kb nicht akzeptabel? das ist weniger als 1mb ??? sicherlich mit der heutigen hware ist das eine triviale menge an lagerung ?? – silvergasp
Von der [Dokumentation] (https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Link-Options.html#Link-Options) von GCC verhindert das '-static' Schlüsselwort das Verknüpfen mit dem Shared Bibliotheken. Das bedeutet, dass die Bibliothek mit Ihrem Programm statisch verknüpft wird (die Bibliotheken werden Teil Ihres Programms), was zu einer Vergrößerung der Bibliothek führt. –