Seite 1 von 1

C++-Programm so groß

Verfasst: 20.01.2006 00:58
von Laurin
Warum ist dieses simple C++-Programm 463 KB groß, wenn ich es mit GCC compiliere?

Code: Alles auswählen

#include <iostream>

int main()
{
    std::cout << "Hallo Welt!\n";
    return 0;
}
Der Code ist ja nichts Weltbewegendes, darum frage ich.

Ich versuche mich gerade in C++, bitte nehmt Rücksicht /:-> :wink:
May be kann ja vielleicht Danilo mir noch ein paar Tipps geben. :)

Greetz Laurin

Verfasst: 20.01.2006 03:03
von Zaphod
ich kenne den gcc zwar nicht sehr gut, aber beim visual c compiler kommt das zu stande wenn man generell statisch linkt, dann kommen alle bibliotheken in die executable.

also beim komplieren drauf achten nur gegen benötige bibliotheken zu linken und am besten dynamisch.

zum vergleich, ein opengl/sdl spiel an dem ich arbeite kommt derzeit auf etwa 30kb.

Verfasst: 20.01.2006 03:13
von Laurin
Aha. Und wie unterbinde ich das statische Linken?

Verfasst: 20.01.2006 11:20
von PAMKKKKK
Du must dem Linker sagen das er das nicht machen soll! :wink:

Bei GCC in den Linker Optionen gucken!
GCC Documentation hat geschrieben: -static On systems that support dynamic linking, this prevents linking with the shared
libraries. On other systems, this option has no effect.
Schau mal in die GCC Documentation in dieses PDF:
http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc.pdf
auf Seite 111

Verfasst: 20.01.2006 13:16
von Laurin
Danke für deine Hilfe PAMKKKKK (sind doch 5 K's oder? ^^)

Der Parameter hat allerdings nichts gebracht.
-static macht eine 463 KB große Datei.
-shared macht eine 469 KB große Datei.
-s macht eine 260 KB große Datei
Was -s bedeutet: hat geschrieben:-s Remove all symbol table and relocation information from the executable.
Es liegt offenbar an etwas anderem. Hm... kp, woran.

Verfasst: 20.01.2006 13:27
von AND51
Dann nur 2 Tipps:

1. UPX verwenden
2. PureBasic verwenden ;-)

Verfasst: 20.01.2006 16:26
von PAMKKKKK
NA ja der GCC macht im allgemeinen immer grösseren Code als z.B. der Intel oder der M$ Compiler. (Probier die doch mal!)

Mir geht´s eigentlich immer nur drum, ob mein Programm überall funzt und erträgliche Grössen und Geschwindigkeiten hat.
Aber auf das kb oder die ms gucke ich da nicht!

Verfasst: 20.01.2006 17:03
von Laurin
PAMKKKKK hat geschrieben:(Probier die doch mal!)
Werde ich mal. Aber vorerst muss ich pauken, damit ich die Sprache irgendwann auch gelernt bekomme ^^

Verfasst: 20.01.2006 19:44
von Zaphod
also der vc7 compiler macht winzige executables (in der visual studio version, keine ahnung wie das bei den anderen varianten ist). probier doch mal die express version von vc7, die ist kostenlos. vom intel compiler würde ich eher abraten, der hat zumindest in einer version die ausführung auf amd prozessoren sabotiert.