Hogyan Lehet Csökkenteni Az Exe Méretét

Tartalomjegyzék:

Hogyan Lehet Csökkenteni Az Exe Méretét
Hogyan Lehet Csökkenteni Az Exe Méretét

Videó: Hogyan Lehet Csökkenteni Az Exe Méretét

Videó: Hogyan Lehet Csökkenteni Az Exe Méretét
Videó: Hogyan alakul ez az ismerkedés? Mi lesz ebből kapcsolatból ?💡✨🔑🔑 2024, Lehet
Anonim

A személyi számítógépeken a kis mennyiségű RAM és hosszú távú tárolóeszközök nagyon szigorú korlátozásokat szabtak a programok méretére. Ez a probléma ma nem létezik. Azonban még most is néha fontos a lehető legkisebbre csökkenteni a kifejlesztett alkalmazás exe-moduljának méretét.

Hogyan lehet csökkenteni az exe méretét
Hogyan lehet csökkenteni az exe méretét

Szükséges

  • - forrás;
  • - fordító, linkelő;
  • - PE modulok kompresszorai, például UPX, Themida.

Utasítás

1. lépés

Készítse el az alkalmazás futtatható verziójának kiadási verzióját. Válassza ki a megfelelő konfigurációt az IDE projektbeállításaiban. Ha nincs ilyen konfiguráció, akkor a meglévő alapján hozza létre. Módosítsa a linkelő opciók listáját a megfelelő irányelvek eltávolításával és hozzáadásával. Tehát a Microsoft fejlesztői csomagjának használatakor el kell távolítania a / debug beállítást. A forráskódhoz hozzáadhatja a következő irányelvet is: #pragma comment (linker, "/ RELEASE")

2. lépés

Konfigurálja a projektet, hogy elkerülje a futtatható fájl és a statikus könyvtárak lehető legnagyobb mértékű összekapcsolását. Használja a megfelelő könyvtárak megosztott verzióit. Például kizárhatja a C és C ++ futásidejű könyvtárak kódját azáltal, hogy az összekapcsoló opciót / ML vagy / MT (statikus egy- és többszálú könyvtárak) lecseréli / MD (többszálú CRT DLL) -re.

3. lépés

Fontolja meg az exe modul különböző szakaszainak egyesítését egybe. Ez a módszer nem eredményez észrevehető eredményt, ha a fájl elég nagy, de a kezdeti 20-30 kilobájtos modulmérettel a nyereség jelentős lehet. A / merge linker opció lehetővé teszi szakaszok egyesítését. Beállíthatja a projekt paraméterein keresztül: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data, vagy a forráskód pragma direktíváival: #pragma comment (linker, "/ egyesítés:.text =.data ") # pragma megjegyzés (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker," / merge:.idata =.data ") Van értelme meghatározni az eredményül kapott szakasz attribútumait is: #pragma comment (linker," /section:.data, rwe ")

4. lépés

Csökkentse az exe méretét a blokkok méretének minimális értékének beállításával, amelyek határai mentén a szakaszok igazodnak. Használja a / filealign linker opciót, amelyet a projekt tulajdonságainak vagy a pragma irányelv szerkesztésével határoz meg: #pragma comment (linker, "/ filealign: 0x200") Ez a módszer kis modulokhoz alkalmas.

5. lépés

Próbálja meg csökkenteni az exe fájl méretét úgy, hogy optimalizálási opciókkal állítja össze a gépi kód csökkentését. Cserélje az / O2 vagy / Od fordító opciókat a / O1 parancsra.

6. lépés

Cserélje ki az exe-modul szokásos DOS csonkját a sajátjára, amely a legkisebb méretű lesz. Használja a / stub linker opciót: #pragma comment (linker, "/stub:mystub.exe") Itt a mystub.exe annak a DOS futtatható fájlnak a neve, amelyet csonkként hozzáadnak az exe modulhoz.

7. lépés

Fontolja meg az alkalmazás saját belépési pontjának megadását. Ez kiküszöböli a statikus futásidejű könyvtárak inicializálási kódját. Használja a / entry linker opciót, például: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

8. lépés

Alkalmazzon olyan csomagolási segédprogramokat, mint az UPX, ASPack, Themida, PECompact a kész exe fájlra. A modul adatai tömörítésre kerülnek. Az alkalmazás elindítása után kibontják a memóriába. Ez a módszer jó eredményeket ad nagy exe fájlok esetén, amelyek nagy mennyiségű statikus adatot tartalmaznak alacsony entrópiával (például DIB raszterek az erőforrás részben).

Ajánlott: