Kuinka Pienentää Exen Kokoa

Sisällysluettelo:

Kuinka Pienentää Exen Kokoa
Kuinka Pienentää Exen Kokoa

Video: Kuinka Pienentää Exen Kokoa

Video: Kuinka Pienentää Exen Kokoa
Video: Welcome Exen Basu 2024, Joulukuu
Anonim

Pieni määrä RAM-muistia ja pitkäaikaisia tallennuslaitteita henkilökohtaisissa tietokoneissa on aiemmin asettanut erittäin tiukkoja rajoituksia ohjelmien koolle. Tätä ongelmaa ei ole tänään. Jopa nyt on kuitenkin joskus tärkeää minimoida kehitetyn sovelluksen exe-moduulin koko mahdollisimman paljon.

Kuinka pienentää exen kokoa
Kuinka pienentää exen kokoa

Välttämätön

  • - lähde;
  • - kääntäjä, linkittäjä;
  • - PE-moduulien kompressorit, kuten UPX, Themida.

Ohjeet

Vaihe 1

Luo sovelluksen julkaisuversio. Valitse sopiva kokoonpano IDE-projektin asetuksista. Jos tällaista kokoonpanoa ei ole, luo se olemassa olevan perusteella. Muokkaa linkitysvaihtoehtojen luetteloa poistamalla ja lisäämällä sopivia direktiivejä. Joten, kun käytät Microsoftin kehityspakettia, sinun on poistettava vaihtoehto / debug. Voit myös lisätä seuraavan direktiivin lähdekoodiin: #pragma comment (linker, "/ RELEASE")

Vaihe 2

Määritä projekti välttääksesi suoritettavan tiedoston liittämistä staattisiin kirjastoihin niin paljon kuin mahdollista. Käytä vastaavien kirjastojen jaettuja versioita. Voit esimerkiksi sulkea pois ajonaikaisen C- ja C ++ -kirjastojen koodin korvaamalla linkkivaihtoehdon / ML tai / MT (staattiset yksi- ja monisäikeiset kirjastot) koodilla / MD (monisäikeinen CRT DLL).

Vaihe 3

Harkitse exe-moduulin eri osien yhdistämistä yhdeksi. Tämä menetelmä ei tuota huomattavaa tulosta, jos tiedosto on riittävän suuri, mutta moduulin alkuperäisen koon ollessa 20–30 kilotavua voitto voi olla merkittävä. / Merge linker -vaihtoehdon avulla voit yhdistää osioita. Voit asettaa sen projektin parametrien kautta: / merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data tai käyttämällä lähdekoodin pragma-direktiivejä: #pragma comment (linker, "/ yhdistä:.text =.data ") # pragmakommentti (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker" / merge:.idata =.data ") On myös järkevää määritellä tuloksena olevan osan määritteet: #pragma comment (linker," /section:.data, rwe ")

Vaihe 4

Pienennä exen kokoa asettamalla niiden lohkojen koon vähimmäisarvo, joiden reunoja pitkin leikkeet on kohdistettu. Käytä / filealign linker -vaihtoehtoa, joka on määritetty muokkaamalla projektin ominaisuuksia tai pragma-direktiiviä: #pragma comment (linker, "/ filealign: 0x200") Tämä menetelmä soveltuu pienille moduuleille.

Vaihe 5

Yritä pienentää exe-tiedoston kokoa rakentamalla se optimointivaihtoehdoilla koneen koodin määrän vähentämiseksi. Korvaa kääntäjän / O2 tai / Od vaihtoehdot / O1: llä.

Vaihe 6

Korvaa exe-moduulin tavallinen DOS-tynkä omalla, jolla on vähimmäiskoko. Käytä / stub linker -vaihtoehtoa: #pragma comment (linker, "/stub:mystub.exe")Here mystub.exe on DOS-suoritettavan tiedoston nimi, joka lisätään exe-moduuliin tynkinä.

Vaihe 7

Harkitse oman sovelluspisteen määrittämistä. Tämä poistaa staattisten ajonaikaisen kirjastojen alustuskoodin. Käytä / entry linker -vaihtoehtoa, esimerkiksi: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Vaihe 8

Levitä valmiisiin exe-tiedostoihin pakkausapuohjelmia, kuten UPX, ASPack, Themida, PECompact. Moduulin tiedot pakataan. Ne puretaan muistiin sovelluksen käynnistämisen jälkeen. Tämä menetelmä antaa hyviä tuloksia suurille exe-tiedostoille, jotka sisältävät suuren määrän staattisia tietoja, joilla on alhainen entropia (esimerkiksi DIB-rasterit resurssiosassa).

Suositeltava: