Почему GCC производит огромный исполняемый файл по сравнению с VCC? - PullRequest
2 голосов
/ 20 августа 2011

У меня есть проект, который не очень большой. С компилятором Visual Studio C ++ исполняемый файл составляет 100 + КБ. Но с MINGW GCC он достигает 500 КБ. То же самое происходит в Linux. Это для релизной сборки. Для отладочной сборки GCC выдает 1,4 МБ, тогда как компилятор VS C ++ выдает только 400 + КБ. В чем причина такого огромного расхождения? Это как-то связано со статическим / динамическим связыванием? Что я могу сделать, чтобы уменьшить размер исполняемого файла, создаваемого GCC?

Ответы [ 2 ]

2 голосов
/ 20 августа 2011

См. Эту страницу о том, как уменьшить размер вывода GCC: http://wiki.wxwidgets.org/Reducing_Executable_Size

1 голос
/ 20 августа 2011
  • Передали ли вы флаг -s в GCC?

  • Связывается ли Visual Studio с ЭЛТ статически или динамически? Как насчет GCC? Вполне вероятно, что VC связывает динамически (флаг /MD вместо /MT), тогда как GCC связывает статически (флаг -static-libgcc и другие) ... попробуйте сделать их согласованными, а затем посмотреть, есть ли разница.

    Один из способов определить, зависит ли ваш исполняемый файл, связанный с VC, от msvcr80.dll (или другой версии), и проверить, зависит ли ваш исполняемый файл, связанный с GCC, от какой-то mingw DLL. Если они это делают, то они динамически связаны; если они действительно работают автономно, то они статически связаны.

...