Как получается, что другие компиляторы, такие как msvc8 или даже компилятор порядка, например borland c ++ 5.5.1, способны создавать очень маленькие исполняемые файлы, а mingw gcc не может?
Я сделал быструю компиляцию «Привет, мир» для каждого из следующих
наборы инструментов и соблюдали размер скомпилированного исполняемого файла. Обратите внимание, что в
во всех этих случаях библиотека времени выполнения статически связана и все отладки
символы были удалены:
compiler toolchain exe size exe size
(w/iostream header) (w/cstdio printf)
-------------------------------------------------------------------------
Borland C++ 5.5.1 110kbyte 52kbyte
MSVC 2008 express 102kbyte 55kbyte
MinGW- GCC 3.4.5 277kbyte <10kbyte
MinGW- GCC 4.4.1 468kbyte <10kbyte
Что интересно, более поздняя версия gcc 4.4.1 производит даже больший исполняемый файл, чем gcc3.4.5, возможно, из-за другой версии libstdc ++.
Так неужели нет способа удалить мертвый код на этапе компоновки для mingw?