Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C++] dimensioni file compilati

    ciao, provando a compilare un file con Dev-C++ ho notato che le dimensioni del file compilato sono molto superiori al codice sorgente (463KB contro 204byte, più di duemila volte tanto).
    il codice che ho scritto è questo, un semplice programma per fare pratica con le stringhe
    codice:
    #include <iostream>
    using namespace std;
    char name[100];
    int main()
    {
        cout<< "Hello what's your name?\n";
        cin>>name;
        cout<< "Bye "<<name<<"\n";
        system("PAUSE");
        return 0;
    }
    è normale tutto questo? quasi mezzo mega per un programmino così semplice mi sembrano troppi !?!
    notate che lo stesso programma in c (ho sostituito cin e cout con scanf e printf) occupa solo 15KB, cosa aggiunge in più all'eseguibile il C++ (ho notato questa differenza di dimensioni in tutti i programmi che ho compilato)?
    forse all'iostream?

  2. #2
    Dipende anche dal compilatore.
    Col Turbo C ricordo che gli eseguibili erano piu' piccoli dei sorgenti...
    Controlla che non venga aggiunto codice di debug.
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  3. #3
    Utente di HTML.it L'avatar di unit1
    Registrato dal
    Feb 2004
    Messaggi
    354
    e dall so, con windows gli eseguibili sono più grandi di linux.

    ho provato tempo fa con un programma base scritto in c

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    le librerie del c++ sono molto piu grosse di quelle del c..da qui la differenza. Per ottimizzare sulle dimensioni dai l'opzione -s tr ale opzioni di compilazione

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Originariamente inviato da unit1
    e dall so, con windows gli eseguibili sono più grandi di linux.

    ho provato tempo fa con un programma base scritto in c
    Dipende anche dal compilatore, CL (VS.NeT) ad esempio quel sorgente l'ha compilato in un eseguibile di 76 Kbyte

  6. #6
    e dall so, con windows gli eseguibili sono più grandi di linux. ho provato tempo fa con un programma base scritto in c
    Quello che dici ha ben poco senso. Linux o WIndows c'entra poco.
    Dipende in particolare dalle librerie che includi e *da come* le includi.
    Scrivi il più semplice programma, tipo "Hello World".

    Sotto linux (gcc) compila con

    1) gcc -s programma.c

    2) gcc -g -static programma.c

    e dimmi se c'è differenza.

    Sotto Window (cl), scegli l' opzione "Release - Multithread dll" (corrisponde a 1)) e "Debug - Static Single Thread" (corrisponde a 2))
    e dimmi se c'è differenza.

  7. #7
    mi sapreste dire come posso passare i parametri al compilatore (DevC++, quindi un porting di gcc), devo usare la linea di comando DOS oppure c'è qualche opzione, io ho trovato solo quelle relative alla ottimizzazione del codice per quanto riguarda l'esecuzione, non lo spazio occupato dall'exe

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.