【发布时间】:2014-05-20 23:38:28
【问题描述】:
它甚至不是一个“hello world”,它只是:
#include <iostream>
int main()
{
return 0;
}
重 1080 kb。当我删除 iostream 包含在程序中以获取
int main()
{
return 0;
}
可执行文件的大小只有 49 kb。 我只想包含 iostream 并且可能只使用 std::cout,但大小将再次为整个兆字节。那么,问题出在哪里,我该如何解决呢? PS:我正在使用带有 mingW 的 wxDevCpp 并且调试信息功能已关闭。 谢谢。
【问题讨论】:
-
你确定你真的编译为发布优化吗?
-
那是因为你付出了你所得到的。 I/O 流实现非常大,即使您“仅”使用
std::cout。 -
包含iostream会增加可执行文件的大小是正常的,特别是考虑到它有模板并且模板的大小很昂贵。
-
我认为这与 C++ 或 iostream 无关,仅与您的编译器有关。在 Ubuntu 下使用 GCC 4.6.3,可执行文件有 12kb,无论是否包含 iostream。甚至
cout << "hello"也不会改变大小,除了几个字节。 -
@t.niese 我不确定wxDevCpp中是否有发布/调试业务,有吗?编译器是否有某种命令不包含未使用的函数/模板/类?