C++-Programm so groß

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

C++-Programm so groß

Beitrag 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
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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.
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Aha. Und wie unterbinde ich das statische Linken?
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag 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
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag 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.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Dann nur 2 Tipps:

1. UPX verwenden
2. PureBasic verwenden ;-)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag 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!
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag 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 ^^
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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.
Antworten