Od czego zależy wielkośc pliku .exe ?
Ostatnio zmodyfikowano 2014-08-24 21:10
include Temat założony przez niniejszego użytkownika |
Od czego zależy wielkośc pliku .exe ? » 2014-08-24 18:53:25 Siemanko :) Ostatnio podczas pisania swojej "aplikacji" :) z ciekawości zobaczyłem ile ma kb plik .exe - okazało się, że ma (na 110 lini kodu) aż 891kb! Piszę w Code::Blocks (MinGW chyba 64) - I tu rodzi się pytanie, co powoduje taki duży rozmiar ? Czy zastosowanie innych zmiennych spowoduje jakieś efekty ? Czy może dołączenie mniejszej ilości bibliotek w postaci zamienników ? Aha i nie sugerujcie się kodem :D - znam tylko podstawy btw. apka jest nie skończona i dość poważnie szwankuje :/ - myślę, że dobrze opisałem problem - to wy sobie myślcie a ja idę pisać ją dalej :) #include <iostream> #include <cstdlib> #include <conio.h> #include <time.h> void menu() { using namespace std; cout << "################################################################################" << endl; cout << "############################## ------------------------ ###############################" << endl; cout << "############################## [1] Nowa Gra [1] ###############################" << endl; cout << "############################## [2] Wczytaj [2] ###############################" << endl; cout << "############################## [3] Opcje [3] ###############################" << endl; cout << "############################## [4] Wyjscie [4] ###############################" << endl; cout << "################################################################################" << endl; } bool czy_rozegrano( bool status ) { } bool czy_od_nowa( bool status_rozegrania = 0 ) { status_rozegrania++; return status_rozegrania; }
bool wczytaj_gre() { using namespace std; cout << "WCZYTAJ GRE: BRAK" << endl; cout << "Potrzebna aktualizacja - brak opcji" << endl; cout << "[1] Zakoncz" << endl << "[2] Powrot" << endl; int x; cin >> x; switch( x ) { case 1: return false; break; case 2: system( "cls" ); return true; break; } }
bool opcje() { using namespace std; cout << "MENU OPCJI: BRAK" << endl; cout << "Potrzebna aktualizacja - brak opcji" << endl; cout << "[1] Zakoncz" << endl << "[2] Powrot" << endl; int x; cin >> x; switch( x ) { case 1: break; return false; case 2: system( "cls" ); return true; } } char odczyt_klawiatury() { char znak; znak = getch(); return znak; } int main() { using namespace std; bool status_gry; srand( time( NULL ) ); menu(); int y; cin >> y; switch( y ) { case 1: czy_od_nowa(); break; case 2: system( "cls" ); wczytaj_gre(); bool status_wczytywania; status_wczytywania = wczytaj_gre(); if( status_wczytywania = true ) main(); break; case 3: system( "cls" ); opcje(); bool status_opcji; status_opcji = opcje(); if( status_opcji = true ) main(); break; case 4: system( "cls" ); break; default: system( "cls" ); cout << "Wybierz 1,2,3 lub 4 !" << endl; main(); break; } }
|
|
MrPoxipol |
» 2014-08-24 18:54:28 Bo kompilujesz w trybie Debug (kompilator dołącza symbole debugowania). |
|
pekfos |
» 2014-08-24 18:57:53 Nie usuwasz zbędnych rzeczy. Opcja -s w GCC pewnie zmniejszy rozmiar programu o połowę. Do tego możesz budować program z optymalizacją pod kątem rozmiaru (-Os w GCC) |
|
Elaine |
» 2014-08-24 19:25:15 Jeśli podczas kompilacji GCC libstdc++ zostało skompilowane z -flto, to można użyć generowania kodu na etapie linkowania, różnice mogą czasami okazać się całkiem spore. Na przykład dla tego kodu: g++ -Os -fno-lto -s -static "$file": 644 KB g++ -Os -flto-partition=none -s -static "$file": 246 KB g++ -O3 -flto-partition=none -fwhole-program -s -static "$file": 333 KB |
|
include Temat założony przez niniejszego użytkownika |
Dzięki za pomoc :D » 2014-08-24 20:43:16 Dzięki za pomoc :D Ad wyżej - zrozumiałem tylko pierwsze 2 linijki :p to jakieś instrukcje dla kompilatora ? Gdzie to wpisywać jeśli wgl trzeba ? |
|
MrPoxipol |
» 2014-08-24 20:45:34 Projekt->Ustawienia budowania i konfiguracja (jakoś tak)->Opcje kompilatora->Dodatkowe opcje. |
|
include Temat założony przez niniejszego użytkownika |
» 2014-08-24 21:10:43 Ok - udało się :) |
|
« 1 » |