|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
[C++] Dev-C++ versione 4.9.9.2
Da quando ho installato questo compilatore (che sarebbe la beta della versione 5) mi crea dei file eseguibili troppo grandi... anche facendo un programma banale (addirittura un programma che magari non fa niente) viene circa 450 kb... attivando le massime ottimizzazioni e l'opzione di compressione dell'exe si scende sui 250 kb... sempre troppo considerando che con la versione 4 mi venivano grandi circa 75 kb... cosa può essere? come si spiega?
|
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
premettendo che non conosco il MinGW ma che a livello concettuale le cose dovrebbero stare più o meno come per i compilatori Microsoft, sui compilatori Microsoft le cose stanno così: un programma vuoto (che ha solo la WinMain, vuota) occupa 152 kb in configurazione debug e 24 kb in release; rimuovendo il runtime di Visual C++ si guadagnano circa 16 kb in entrambe le configurazioni; di conseguenza in configurazione release l'exe occupa 8 kb, che è la dimensione minima di un file PE avente unicamente gli headers (4 kb, cioè la dimensione di una pagina) e una sola sezione .text (altri 4 kb), e tutto torna.
non chiedermi come si fa a rimuovere il common runtime del MinGW perché non lo so ![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2005
Messaggi: 224
|
La FAQ numero 6 dal sito DEV C++ (http://www.bloodshed.net/faq.html) dice:
6. The EXE files created are huge. What can i do to reduce the size ? If you want to reduce your exe file size from 330 Ko to 12 Ko for example, go to compiler options. Then click on the Linker page and uncheck "Generate debug information". This will remove debugging information (if you want to debug, uncheck it). You can also click on Optimization page and check "Best optimization". ![]() |
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2005
Città: San Marino
Messaggi: 309
|
Quote:
Ma poi a cosa servirebbero? ![]()
__________________
![]() ![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
vai nelle opzioni del progetto e seleziona qualcosa come "strip executable" (metti in inglese se non riesci a trovarlo)
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Aug 1999
Città: Vares
Messaggi: 3831
|
Quote:
__________________
Quanto tutti sono d'accordo con me ho l'impressione di avere torto. |
|
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
|
Quote:
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
|
|
![]() |
![]() |
![]() |
#10 | |
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
Allora ricapitoliamo sennò non si capisce: io ho attivato la compressione dell'eseguibile, ho rimosso le info di debug, ho settato l'ottimizzazione al massimo e, dopo tutti questi passaggi, l'eseguibile è grande circa 250 kb... (contro gli oltre 450 se non attivassi niente). La domanda quindi è: "perchè con il dev-c++ 4 me li creava a 70 kb e con questo no?" |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
prova a creare un progetto C invece che C++ e vedi come la dimensione diminuisce notevolmente...
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#12 | |
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
|
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
beh di solito usando anche solo #include <fstream> oppure #include <string> la dimensione dell'eseguibile va alle stelle...se includi qualche header per le classi del c++ prova ad usare le controparti in c...
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
Quote:
cmq a titolo di esempio anche i sorgenti del Delphi, seppur banali, occupano un botto e questo perchè ci sono impostate di default delle opzioni che fanno compilare in un unico exe anche tutte le librerie necessarie...magari è il tuo caso...
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il problema è che tutte le parti della libreria standard C++ che usano i template devono essere inclusi nell'eseguibile...
|
![]() |
![]() |
![]() |
#16 |
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
ah ok!! quindi è normale?
se voi compilate un programma in c++ che non fa niente con le opzioni di default quanto vi viene grande? (giusto per curiosità, tra l'altro non è che sia un grave problema) |
![]() |
![]() |
![]() |
#17 | |
Member
Iscritto dal: May 2005
Messaggi: 80
|
STL e Xerces
Quote:
quello che volevo chiedervi è come mai un progetto che dev 4 compilava a meraviglia nel 4.9.9.2 mi dà errori tipo Codice:
16 C:\Documents and Settings\alesnoce\Documenti\DevC++\Transition.h `string' does not name a type C:\Documents and Settings\alesnoce\Documenti\DevC++\Makefile.win [Build Error] [Transition.o] Error 1 ultimo mio problema, per il momento: non riesco a scaricare xerces da strumenti->cerca aggiornamenti ci sono riuscito durante la prima installazione, poi non me lo ha più riproposto e pensare che è l'aggiunta automatica di xerces è l'unico motivo per cui ho abbandonato dev 4 |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perchè lo standard C++ ha incluso tutta la libreria standard nel namespace std...
Quindi per poter vedere le classi della libreria standard devi usare using namespace std; dopo gli include... |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Mar 2000
Città: Parma
Messaggi: 2090
|
Codice:
int main(){ return 0; } Con <iostream> incluso viene 520KB. Nessuna ottimizzazione selezionata.
__________________
] I've had enough, sick and tired: bring the sun or I'm gone. [ |
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:57.