Door mergen heb je geen extra padding tussen de secties nodig, dus een kleinere executable. Alhoewel dit voor een trucje is uit de tijd dat ik 4k en 64k exe's aan het brouwen was. Hoeveel dit op meerdere megabyte executables effect heeft betwijfel ik...
De link optie is /merge, bijvoorbeeld:
/merge:.data=.text /merge:.rdata=.text (hangt een beetje af van hoe je secties nu heten, gebruik dumpbin)
en om je sectie wel executable te maken:
/section:.text,erw
Kijk
hier voor de linker options...
Ik geloof dat dit overeenkomt met het uitschakelen van 'Optimize for Windows 98'? Dat had ik al gedaan en dat leverde -10% op geloof ik.
Volgens de help voor /OPT:WIN98 indd wel, je kan nog even expliciet /align:4096 toevoegen om te kijken of het nog verschil maakt.
Aangezien enkel de gebruikte functies gelinkt worden en ik er niet te zwaar op steun vraag ik mij af of dit wel de moeite kan lonen? Ik moet dan zowiezo alternatieven implementeren en die moeten dan al kleiner zijn.
Het is makkelijker om kleine executables te maken wanneer je klein kan beginnen
Dit is een oud voorbeeld van een 1k exe die bijna niks doet, maar hij is wel klein. Als je hier telkens code aan toevoegt
- die zoveel mogelijk msvcrt.dll functies gebruikt (die dll is standaard op win95!)
- welke zo min mogelijk statische libs gebruikt
- voor je gui geen dikke libs gebruikt maar bv gewoon dialog boxes (kleine resources)
- die je textures en modellen procedureel genereert

- welke geen onnodig veel resources include (splash screens, etc.)
Zou je exe alleen moeten groeien met de grootte van je object files.
Dat is uiteraard lastig als je applicatie zwaar leunt op een GUI library of graphics library met weer een boel dependencies. Maar vaak genoeg kan een applicatie een stuk kleiner gemaakt worden door overbodige troep te verwijderen.
Alhoewel je zoals anderen zeggen je wel kan afvragen wat voor zin het nog heeft. Aan de andere kant, kijk eens waarom μTorrent mede zo populair is geworden: heel kleine exe grootte en dus snelle download. Er hangt gewoon een stigma aan grote downloads dat het bloatware is. Kleine apps zijn snel

Uiteraard kan het best omgekeerd zijn, maar dat is wel het beeld wat veel gebruikers hebben denk ik. Ik begrijp de eis daarom ook wel...