C++ 使用Visual Studio和命令行编译时为什么大小不同

C++ 使用Visual Studio和命令行编译时为什么大小不同,c++,visual-studio,compilation,compiler-optimization,C++,Visual Studio,Compilation,Compiler Optimization,这本身不是一个非常技术性的问题,这主要是关于我的好奇心,为什么在用Visual Studio构建软件时,当你点击“构建”或“构建并运行”,或者你只是编译你的软件时,生成的.exe与使用CMD相比是非常轻量级的 例如,我使用Visual Studio编写代码,它可能会生成一个大约1.5MB的.exe,但当我使用>CL编译同一个.cpp文件时,输出的.exe甚至可能会增加一倍 为什么呢?同样愚蠢的问题也适用于GNU编译器?使用cpp file.cpp时,生成的exe可能比使用Microsoft时的e

这本身不是一个非常技术性的问题,这主要是关于我的好奇心,为什么在用Visual Studio构建软件时,当你点击“构建”或“构建并运行”,或者你只是编译你的软件时,生成的.exe与使用CMD相比是非常轻量级的

例如,我使用Visual Studio编写代码,它可能会生成一个大约1.5MB的.exe,但当我使用>CL编译同一个.cpp文件时,输出的.exe甚至可能会增加一倍


为什么呢?同样愚蠢的问题也适用于GNU编译器?使用cpp file.cpp时,生成的exe可能比使用Microsoft时的exe大三倍。Visual Studio也只调用CL(和链接)。区别在于VisualStudio传递的选项与您的不同。您可以通过检查项目属性和/或检查生成输出来查看Visual Studio传递的选项。

Visual Studio也只调用CL(和链接)。区别在于VisualStudio传递的选项与您的不同。您可以通过检查项目属性和/或检查生成输出来查看Visual Studio传递的选项。

可能VS IDE正在应用一些命令行开关,您没有指定手动执行这些开关。你的最后一段让人困惑:GNU cpp不生成可执行文件。我的水晶球说一个构建没有启用优化,另一个是启用了//*优化。@我指的是GNU Cigwin编译器,你可以使用GNU windows端口在windows中编译程序,但是,即使是一个简单的hello world,其重量也将达到2Mb。VS IDE可能正在应用一些命令行开关,您没有指定手动执行这些开关。你的最后一段让人困惑:GNU cpp不生成可执行文件。我的水晶球说一个构建没有启用优化,另一个是启用了//*优化。@Aschepper我指的是GNU Cigwin编译器,你可以使用GNU windows端口在windows中编译程序,但即使是一个简单的hello world也会重2MB