
Lazarus - exe obluda
Zdravím.
Dam nový projekt, uložít a sestavit.
Uděla mi to skoro 20 MB exe obludu.
Kde je problem?
Zdravím.
Dam nový projekt, uložít a sestavit.
Uděla mi to skoro 20 MB exe obludu.
Kde je problem?
Zpět do poradny Odpovědět na původní otázku Nahoru
A preco pouzivas hovadiny, pouzi ciste c++ a budes mat 32kB exe. Visual C bolo aj zdarma.
P.S. ja osobne vo VC++ nastavujem linkeru nech pouziva staticaly linked library lebo ked tam nastavis dynamicaly linked dll, tak budes potrebovat nainstalene prislusne visual C runtime k tomu exe
P.S.2. ale vyhoda externeho runtime je ze sa to moze zaplatovat nezavisle, takze niekedy je lepsie to nechat tak a nainstalit visual c runtime.
Pokud ti nevadi, ze pak budes mit v systemu 5+ verzi C++ Runtime, k tomu x verzi .NET runtime...
Osobne mam radeji nekolika MB EXE, ktery muzu vzit kamkoliv, spustit a vim ze pobezi nez 32kB EXE, ke kteremu musim doinstalovat desítky MB runtime.
Tak viem urobit aj 32kB bez runtime:)
Samozrejme, ze to jde, pokud delas nejakou drobnost, kterou neplanujes nejak moc do budoucna rozvijet.
Size_Matters
To compile your application in this way, you should use the -Xg switch or corresponding the Lazarus GUI option: Project|Compiler Options|Linking|Debugging|Leave generating debugging info enabled and enable use External gdb debug symbols.
S 20 MB obludy je hned 2,39 MB což by už šlo
Když však vypvořím nový projekt, je to zas přeple.
Neda se to někde přepsat natvrdo?
Co ten fpc.cfg ?
Nehodil by tu někdo upravený?
Takto to robi clovek
http://wiki.freepascal.org/IDE_Window:_Compiler_Op tions#Adding_a_release_and_debug_build_modes
Zmenšení výsledné aplikace v Lazarusu jde velmi snadno až 26x, nebo na 3,8% původní velikosti, tj. z 22 MB to udělá 0,75 MB! Nejlepší způsob je nastavit to v grafickém prostředí. O něco horší postup je použití strip a pak upx. Podrobné a názorné informace jak zmenšit kód v LAZARUS 1.6.4.
Komprimátory jako UPX bych dnes už nepoužíval. Mají jednu obrovskou nevýhodu, pokud pominu to, že jsou často takto komprimované programy detekovány jako škodlivý kód.
Normální program se do paměti nenahraje celý, je jen jeho potřebná část. Pak se dotahuje jen, co je třeba.
Pokud použiješ UPX, musí se program do paměti rozbalit, abys ho mohl spustit, takže ve výsledku zabere mnohem víc operační paměti než nezpakovaný program. Úspora je pouze místo na disku.
Po více než roce už to tazatel asi vyřešil.
Hlavní problém je v tom, že Lazarus neumí dynamické knihovny (jako u Delpji *.BPL), vše je staticky přilinkované. Netřeba se děsit, jak budeš zvětšovat (zdrojový) program, pak již bude runtime narůstat jen velmi málo.