我有这个代码片段:
#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/