c++ - 几乎为空的 .exe 文件的重量是由什么造成的?

标签 c++ compilation exe

我有这个代码片段:

#include <iostream>
using namespace std;

int main(){
cout<<"Hi there!";
return 0;
}

我使用以下行通过“VS2012 的开发人员命令提示符”进行编译:

cl -GS name.cpp

这又产生了一个大小为 137kb 的可执行文件。
虽然我知道 137kb 在现代计算中不算什么,但对于它运行的代码量来说,它仍然看起来是一个非常大的文件。此外,尝试编译类似的代码,但使用 int 变量会在顶部增加另外 15kb。一个整数在编译过程中会发生什么情况,以至于它的权重如此之大?

最佳答案

您的代码引入了标准库的 IOstreams 部分,由 Microsoft 实现。这意味着它还需要与 C stdio 同步,并支持全局构造函数。

此外,默认构建是调试构建。明显的测试切换是 /O1 (优化大小)。未使用的整型变量应在发布版本中添加 0 个字节。 /DNDEBUG 应该消除断言。

关于c++ - 几乎为空的 .exe 文件的重量是由什么造成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41568064/

相关文章:

c++ - 如何删除 Windows 进程名称前面的十六进制数字

c++ - 在 C++ 中检查数字是否为奇数。代码的奇怪行为

.net - 从 USB 内存棒、.net 进行编程

c++ - 嵌套模板函数的重载

java - 为什么 ArrayIndexOutOfBoundsException 不是编译时错误?

c++双重删除文件范围变量,链接问题?

c# - 如何停止我的类库生成 .EXE 文件并导致 TypeLoadException 异常?

c++ - 从 .exe 输出到 cmd

c++ - 二维数组 C++ 三角形

c++ - c++中的构造函数使用[]而不是括号创建对象