2015-07-12 31 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

相關問題