2

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

感谢所有回复!

4

1 回答 1

3

我猜你正在静态链接标准库的调试版本。

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

在数字上(我手头没有 gdc):

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

据我所知,gdc 不使用/支持 -gc-section,这也会增加可执行文件的大小。

于 2015-07-12T11:22:14.147 回答