Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Od czego zależy wielkośc pliku .exe ?

Ostatnio zmodyfikowano 2014-08-24 21:10
Autor Wiadomość
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 :)

C/C++
#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 ) // tzn. czy rozegrac na nowo ?
{
   
}
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 ) // to powroc do menu
             main();
       
        break;
    case 3:
        system( "cls" );
        opcje();
        bool status_opcji;
        status_opcji = opcje();
        if( status_opcji = true ) // to powroc do menu
             main();
       
        break;
    case 4:
        system( "cls" );
        break;
        default:
        system( "cls" );
        cout << "Wybierz 1,2,3 lub 4 !" << endl;
        main();
        break;
    }
}
P-116002
MrPoxipol
» 2014-08-24 18:54:28
Bo kompilujesz w trybie Debug (kompilator dołącza symbole debugowania).
P-116003
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)
P-116004
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
P-116009
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 ?
P-116015
MrPoxipol
» 2014-08-24 20:45:34
Projekt->Ustawienia budowania i konfiguracja (jakoś tak)->Opcje kompilatora->Dodatkowe opcje.
P-116016
include
Temat założony przez niniejszego użytkownika
» 2014-08-24 21:10:43
Ok - udało się :)
P-116021
« 1 »
  Strona 1 z 1