Почему разные размеры при компиляции с Visual Studio и командной строкой

Это не очень технический вопрос сам по себе, это в основном из-за моего любопытства, почему при создании программного обеспечения с помощью Visual Studio, когда вы нажимаете «Build» или «Build & Run», или вы просто компилируете свой программное обеспечение сгенерированный .exe очень легкий по сравнению с использованием CMD

Например, я кодирую с помощью Visual Studio, и он может сгенерировать .exe размером около 1,5 МБ, но когда я компилирую один и тот же файл .cpp с помощью> CL, выходной файл .exe может иметь даже двойной вес.

Это почему? Тот же самый глупый вопрос относится и к компиляторам GNU? при использовании cpp file.cpp сгенерированный exe может быть в три раза больше, чем у Microsoft


person Community    schedule 22.10.2017    source источник
comment
Вероятно, VS IDE применяет некоторые параметры командной строки, которые вы не указали вручную. Ваш последний абзац сбивает с толку: GNU cpp не генерирует исполняемые файлы.   -  person aschepler    schedule 22.10.2017
comment
Мой хрустальный шар говорит, что одна сборка без оптимизации, а другая // * с * включенной оптимизацией.   -  person Jesper Juhl    schedule 22.10.2017
comment
@aschepler Я имею в виду компилятор GNU Cigwin, вы можете компилировать программы в Windows, используя порт Windows GNU, но даже простой привет мир будет весить 2 МБ   -  person    schedule 22.10.2017


Ответы (1)


Visual Studio также просто вызывает CL (и LINK). Разница в том, что Visual Studio передает другие параметры, чем вы. Вы можете увидеть, какие параметры передает Visual Studio, изучив свойства проекта и / или изучив выходные данные сборки.

person jazzdelightsme    schedule 22.10.2017