为什么 D 程序可执行文件大到几乎 9+ MiB?

Why D program executable is big almost to 9+ MiB?

我发现一个简单的 Hello World 程序 D 可执行文件很大,大约 9.2 MiB。我正在使用 gdc-4.8 编译器。这是一项功能还是某种错误?

感谢大家的回复!

我猜你是在静态地link针对标准库的调试版本。

首先,可执行文件的大小取决于标准库的动态与静态linking 的使用。如果您静态 link 您的可执行文件,那么调试信息是影响大小的另一个因素。

数字(我手头没有 gdc):

  • 使用 ldc2 静态编译 linked: 315KiB
  • 使用带有调试信息的 ldc2 静态编译 linked:2.9MiB
  • 使用 dmd 动态编译 linked: 51KiB
  • 使用带调试信息的 dmd 静态编译 linked: 77KiB

据我所知,gdc 没有 use/support -gc-section 这也会影响可执行文件的大小。