2015-07-12 26 views
2

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

感谢您的回复!

+0

http://stackoverflow.com/a/2649430/2026276 – Bauss

+3

运行'strip yourprogram',它应该修剪,它的方式。 gcd做了很多调试信息 –

+0

strip 确实有效。从10.3 MB到1.8 MB(实际上我对这个尺寸非常满意)。我认为你应该发表你的评论作为这个问题的答案。如果没有比这更好的答案,我绝对会将此作为解决方案。谢谢 – user5555332

回答

3

我想你是静态链接标准库的调试版本。

首先,可执行文件的大小取决于使用标准库的动态链接还是静态链接。如果您静态链接您的可执行文件,那么调试信息是大小的另一个贡献者。

在数字(我没有在手GDC):

  • 与LDC2编译,静态链接:315KiB
  • 与调试信息LDC2编译,静态链接:2.9MiB
  • 编译与DMD,动态链接:51KiB
  • 与调试信息DMD编译,静态链接:77KiB

据的I k现在gdc不使用/ support -gc-section,它也有助于可执行文件的大小。

+0

我应该如何动态链接它?我是一个初学者,对不起。谢谢。 – user5555332

+0

@interprog,那么你如何动态链接? :) 谢谢! –

+0

@MenelionElensúlë我其实并没有找到确切的方式,我甚至不知道我正在做的是动态链接的正确方法。实际上,我找到了动态链接C的方法 - http://dlang.org/dll-linux.html – user5555332

相关问题