Анатомия C Run-Time, или Как сделать программу немного меньшего размера - Уменьшение выравнивания файловых секций
ОГЛАВЛЕНИЕ
Страница 8 из 15
Уменьшение выравнивания файловых секций
Возможно, владельцы Visual C++ 5.0 заметили, что у них в результате получаются EXE-файлы куда меньшего размера, чем сказано здесь. Дело в том, что компоновщик версии 5.0 использовал выравнивание секций исполняемого файла на величину 512 байт. Начиная же с версии 6.0, при сборке приложения используется другая величина выравнивания - 4К. Это позволяет быстрее загружать такой файл в Windows 98 и более новых версиях ОС.
Вернуть прежнюю величину выравнивания можно, задав недокументированную опцию компоновщика /opt:nowin98:
cl /MD test.cpp user32.lib /link /opt:nowin98
Размер EXE в результате составляет менее 3-х килобайт! Но не забудьте, что такой файл будет медленнее загружаться в память, и что он по-прежнему требует наличия MSVCRT.DLL.