9

組み込みパッケージを使用してdelphiで.exeファイルをコンパイルすると、約600kbのEXEファイルが生成されます。ただし、ランタイムパッケージを使用してコンパイルすると、サイズの合計(.exe +必要なすべての.BPL)は約6〜8 MBになります(コンパイラのバージョンによって異なります)。なぜその違いがそれほど重要なのですか?

4

2 に答える 2

14

通常のコンパイルを実行すると、リンカはDCUで「スマートリンク」を実行し、プログラムが必要としないコードを削除できるためです。ただし、パッケージは事前にビルドされており、すべてのコードが含まれているため、小さいサイズにスマートリンクすることはできません。

于 2009-08-21T14:05:21.833 に答える
4

組み込みの BPL を使用してプログラムを生成するときに、BPL ファイル全体がリンクされていると想定していると思います。そうではありません。コンパイルの最終段階で、Delphi コンパイラはすべてをリンクします。そこでは、BPL にあるが、プログラムによって直接的または間接的に呼び出されないモジュールが省略されます。

そのため、フットプリントがはるかに小さくなり、実際に必要なモジュールのみが最終的なexeに含まれます。

于 2009-08-21T14:18:34.830 に答える