Avatar billede blackautt Nybegynder
22. juni 2004 - 08:48 Der er 12 kommentarer og
1 løsning

hello iostream

Hvis vi tager "hello world" som vores tilfældige eksempel, så er det ikke specielt rimeligt, at det færdige program fylder næsten 500 kb. Det gør det, fordi at iostream fylder afsindigt meget. Det er jo ikke særligt optimalt, når man vil lave konsolbaserede værktøjer, hvor pladsen er af afgørende betydning! Hvordan kan man koge iostream ned, så det ikke fylder så forbandet meget? Er der nogle alternativer til det?

Jeg har postet dette spørgsmål mange andre steder, men jeg får bare ikke nogen svar.. generelt
Avatar billede arne_v Ekspert
22. juni 2004 - 09:26 #1
C++ IO fylder en hel del.

Prøv at skifte til C IO.
Avatar billede arne_v Ekspert
22. juni 2004 - 09:27 #2
#include <iostream>

using namespace std;

int main()
{
  cout << "kuk kuk" << endl;
  return 0;
}

->

#include <cstdio>

using namespace std;

int main()
{
  printf("kuk kuk\n");
  return 0;
}
Avatar billede arne_v Ekspert
22. juni 2004 - 09:30 #3
Og hvis det er selve EXE filens størrelse der er afgørende så bed den
strippe debug info af.

For GCC (mingw, cygwin, dev-cpp):

g++ -s ...

Det plejer at tage ca. halvdelen !
Avatar billede segmose Nybegynder
22. juni 2004 - 12:31 #4
Der er også en option for at optimere for size til GCC (selvom jeg ikke kan huske den nu).
Hvis du laver mange forskellige programmer, kunne du komme de fælles funktioner/biblioteker ind i en .so/.dll fil.
Hvis du er rigtig desperat kan du tage kildekoden til iostream med i dit project istedet for og håbe at compileren/linkeren kan finde ud af at lade være med at tage ubrugt kode med i programmet.
Avatar billede arne_v Ekspert
22. juni 2004 - 12:41 #5
Jeg tror ikke på at det vil hjælpe at hive C++ std lib koden ind i projektet.
Avatar billede arne_v Ekspert
22. juni 2004 - 12:42 #6
og et svar
Avatar billede blackautt Nybegynder
22. juni 2004 - 13:21 #7
arne_v :

I dev-cpp, hvordan sættes det flag (-s)? Execute -> parameters?

segmose :
Hvordan hiver jeg hele iostream ind?
Avatar billede arne_v Ekspert
22. juni 2004 - 13:29 #8
Nej den skal sættes ind under compiler options
Avatar billede deadmez Nybegynder
22. juni 2004 - 13:40 #9
hvad med #include <stdio.h> ?? kan den ikke bruges ??
Avatar billede arne_v Ekspert
22. juni 2004 - 13:42 #10
#include <cstdio>

og

#include <stdio.h>

gør det samme
Avatar billede deadmez Nybegynder
22. juni 2004 - 13:45 #11
oki.... vidste jeg ikke lige... er rimelig ny inden for C/C++...
Avatar billede soreno Praktikant
22. juni 2004 - 16:22 #12
En exepacker kan der evt. suppleres med, f.eks. upx:
http://upx.sourceforge.net/
Avatar billede blackautt Nybegynder
23. juni 2004 - 08:45 #13
WHOA! ... UPX klarer godt nok ærterne! .. min fil gik fra 462 Kb til 75kb!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester