回答
我想你是静态链接标准库的调试版本。
首先,可执行文件的大小取决于使用标准库的动态链接还是静态链接。如果您静态链接您的可执行文件,那么调试信息是大小的另一个贡献者。
在数字(我没有在手GDC):
- 与LDC2编译,静态链接:315KiB
- 与调试信息LDC2编译,静态链接:2.9MiB
- 编译与DMD,动态链接:51KiB
- 与调试信息DMD编译,静态链接:77KiB
据的I k现在gdc不使用/ support -gc-section,它也有助于可执行文件的大小。
我应该如何动态链接它?我是一个初学者,对不起。谢谢。 – user5555332
@interprog,那么你如何动态链接? :) 谢谢! –
@MenelionElensúlë我其实并没有找到确切的方式,我甚至不知道我正在做的是动态链接的正确方法。实际上,我找到了动态链接C的方法 - http://dlang.org/dll-linux.html – user5555332
- 1. 为什么程序头可执行?
- 2. 执行程序关闭后,为什么Runnable仍然在可执行的线程池执行程序中执行?
- 3. 为什么不去执行子程序
- 4. 当输入大于9时,为什么这个程序崩溃?
- 5. 为什么程序在执行代码context.getAssets().list(“”)?时出现错误SIG:9?
- 6. 为什么-9认为大于1?
- 7. 什么是c#测试驱动程序,为什么执行
- 8. 为什么我的应用程序执行从上到下
- 9. 为什么'^ 9等于9?
- 10. 为什么可执行文件不可执行?
- 11. 什么我设置ProductID到HOST-RESOURCES-MIB
- 12. 为什么我的C++输出可执行文件太大了?
- 13. 为什么“\ 9”给“9”而“\ 7”为空?
- 14. 这是什么C++程序不执行?
- 15. 程序执行是非顺序的。为什么?
- 16. 为什么printf(“%d%d%d”,++ i,i,i ++)是未定义的行为?
- 17. 为什么catch程序块为单个异常执行两次?
- 18. 为什么线程不执行IDisposable?
- 19. pdfgrep'\ d {3} - \ d {2} - \ d {4}'vs'[0-9] {3} [ - ]?[0-9] {2} [ - ]?[0- 9] {4}”
- 20. iOS应用程序可以在后台执行什么操作?
- 21. Qt执行外部可执行程序?
- 22. 什么是SNMP的IF-MIB ::的ifIndex的IF-MIB :: ifTable中的含义是什么?
- 23. 为什么连接的可观察得到只执行一次
- 24. 什么进程执行rpc:cast?
- 25. Android:没有应用程序执行此操作,为什么?
- 26. 为什么我的过程按顺序执行?
- 27. 为什么rand(变量)暂停我的Shoes程序的执行?
- 28. 为什么控制流程不遵循代码执行顺序?
- 29. 为什么是Common Lisp的Web程序的执行我不能
- 30. 为什么仪器不能执行我的Monotouch应用程序?
http://stackoverflow.com/a/2649430/2026276 – Bauss
运行'strip yourprogram',它应该修剪,它的方式。 gcd做了很多调试信息 –
strip确实有效。从10.3 MB到1.8 MB(实际上我对这个尺寸非常满意)。我认为你应该发表你的评论作为这个问题的答案。如果没有比这更好的答案,我绝对会将此作为解决方案。谢谢 –
user5555332