![](/img/trans.png)
[英]Is there any risk in having an exe larger than 100MB built with Delphi?
[英]Delphi: .exe with built-in packages: 600kb, .exe + external BPLs: 6MB. Why is that?
如果我使用內置包在delphi中編譯.exe文件,它會生成大約600kb的EXE文件。 但是,如果我使用運行時包編譯它,大小的總和(.exe +所有必需的.BPLs)大約是6-8 MB(取決於編譯器的版本)。 為什么差異如此顯着?
因為如果運行正常編譯,鏈接器可以在DCU上執行“智能鏈接”並刪除程序永遠不需要的代碼。 但是這些軟件包是預先構建的,並且包含了所有代碼,因此您無法將它們智能鏈接到更小的尺寸。
我認為你假設當你生成一個內置BPL的程序時,所有的BPL文件都被鏈接在一起。 事實並非如此。 在編譯的最后階段,Delphi編譯器將所有內容鏈接在一起。 它省略了模塊,這些模塊位於BPL中,但不是由程序直接或間接調用的。
因此,您最終會占用更小的空間,只有實際需要的模塊才會出現在最終的exe中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.