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

标签 size executable d binaryfiles native-executable

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

感谢大家的回复!

最佳答案

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

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

以数字表示(我手头没有 gdc):

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

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

关于size - 为什么D程序可执行文件大到几乎9+ MiB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31366010/

相关文章:

objective-c - 检查文件是否为空

python - wxPython中查找文本大小的正确方法

C#:给定一个没有路径的文件时,如何获取 Process.Start 将使用的可执行路径?

d - 在 D 中的关联数组中查找最大值元素

javascript - Javascript 页面大小(以 kb 为单位)

WebSocket - 有效负载长度

c++ - bash:无法执行二进制文件:Exec 格式错误,即使二进制文件和 Linux 是 64 位的

c++ - Visual Studio - 不确定导出项目

arrays - 如何为可变大小的数组创建固定的结构头

glsl - D CTFE 和 GPU 代码生成