Programme werden riesig

Ich verwende zum ersten mal Dev-Cpp in der Version 4.9.8.0 mit dem mingw32 Compiler. Mein Problem ist dass die fertigen Programm riesig werden. Selbst ein einfaches „Hallo Welt“-Programm benötigt ca. 440 KB. Woran liegt das?

Grüße
Fabian

Eventuell daran, dass der Compiler Debug-Informationen mit in die ausführbare Datei packt.

Schau mal obs da einen Switch oder sowas gibt.

Grüße, Robert

Daran hab ich auch gedacht, aber daran liegt es nicht. Ich glaube es liegt an den eingebundenen C++ Bibliotheken. Füge ich z.B.

#include 

hinzu, wird die exe-Datei statt 154kb 491kb groß. Wieso ist dies so?

Grüße
Fabian

Das dürfte daran liegen, dass du die Bibliotheken statisch linkst. D. h. das er alle Funktions-Bibliotheken die du verwendest mit in die .exe-Datei packst.

Irgendwie musst du ihn dazu bringen, dass er solche Sachen dynamisch linkt und dann aus DLLs lädt.

Grüße, Robert

Hi Fabian,

ich fange erst gerade an unter Dev-C++ (mit MinGw) zu arbeiten. Folgender Code wird bei mir zwar kompiliert aber der Linker findet die Definitionen des string-Konstruktors bzw. Destruktors erst gar nicht, so dass ich Dir zu Deinem Problem zunächst nichts sagen kann:

#include 
using namespace std;

int main(void)
{
 string s("abc");
}

Das Problem liegt darin (auch Deines) dass die Klasse string auf einer template-Klasse basiert, durch ein typedef eingeführt, und zwar:

typedef basic\_string,...\> string;

Mich würde zunächst ineteressieren, wie Du Dein Programm überhaupt zum Laufen bekommen hast, ich empfehle Dir auch folgenden Artikel zum gcc-Compiler:

http://gcc.gnu.org/onlinedocs/gcc-3.3/gcc/Template-I…

Dort findest Du eine Menge Informationen zur template-Instanzierung (also wo wird der obj-Code generiert und wie arbeitet der Linker).

Gruss Rolf