• ベストアンサー

Delphi:実行形式ファイルのサイズ

Delphiで、フォームにコントロールを貼り付けただけのプログラムをコンパイルし、 実行形式ファイルを作成しましたら、約500KBになりました。 あまりにも大きいので、小さくならないものかとネット上を探しましたら、 URL : http://f29.aaa.livedoor.jp/~morg/wiki/index.php?Delphi >環境設定 >ファイルサイズを小さくするには > >Delphiの実行ファイルは通常かなりサイズが大きいですが、 >小さくすることができます。 >「ライブラリの参照」から、 動作させる環境で必要のないものだけを除きます。 >(除いた後の動作確認を忘れずに) >そして、プロジェクトオプションの、「実行時のパッケージで再構築」の、 >部分に、必要なものだけを記述して再構築します。 というものがありました。 実際には、「プロジェクト」-「オプション」-タブ「パッケージ」の 「実行時パッケージを使って構築」にチェックを入れました。 結果、約20KBになりました。 これは、いったいどういうこのなのでしょうか? (実行時にはランタイムライブラリ等が必要になる?) ヘルプを見てみましたが、よく分かりませんでした。 また、URLのページで説明にある 1:『「ライブラリの参照」から、 動作させる環境で必要のないものだけを除きます。』 2:『「実行時のパッケージで再構築」の、部分に、必要なものだけを記述して…』 とありますが、具体的にどのように指定するのでしょうか? (1はパス指定のようだが、2はdcpファイルを指定?)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>これは、いったいどういうこのなのでしょうか? ”実行時パッケージを使う”とした場合、EXEファイルは コンパクトになりますが、実行時パッケージ(ランタイム)が 必要になります。(バージョンによるけど、1.8MB以上) EXEファイルに静的に組み込めば、500KBで済むものが、 ランタイムだと、1.8MB以上ですから、1つのEXEファイルを 配布するなら、ランタイムを使うより、静的リンクの方が 全体としてコンパクトと言うことになります。 数多くのEXEファイルがある場合、個々に静的リンクするより ランタイムを利用した方がコンパクトです。 その辺の判断は、人によって変わると思います。 なお、Delphiが使っているスマートリンクなる手法は、 使わないモノは、EXEファイルに含めないので、無駄に 大きなEXEファイルを作っているわけではありません。 (不要なモノは組み込まれない) 配布相手を考えて、適宜、使い分けるのがよろしいかと。

sambarunba
質問者

補足

なるほど。分かり易い説明をありがとうございます。 ということは、EXEファイル単体で動かそうとするとき、 サイズを小さくしたいなら #1 さんの方法を使ったほうがいいということですね。 ちなみに私が使用しているものはDelphi6 Personal なのです。 これにスマートリンクの機能はあるのでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

古いバージョンのDELPHIしか使ってないので、最近のモノは判りませんが.. ごく初期のバージョンのDELPHIで取り入れられていますので、DELPHI6でも 問題ないでしょうし、エディションの違いで未実装と言うことはありません。 (大昔のTurboPascalでも実装していたような気がする)

sambarunba
質問者

補足

説明をありがとうございます。 参考になりました。

すると、全ての回答が全文表示されます。
  • bioche
  • ベストアンサー率50% (4/8)
回答No.1

ライブラリーの依存関係とかを把握しとかないと難しいんじゃないでしょうか? http://homepage2.nifty.com/maskp/ こういうのが早いと思います exe を exe のまま 圧縮します。

参考URL:
http://homepage2.nifty.com/maskp/
sambarunba
質問者

補足

ありがとうございます。 教えていただいた方法が早くて、簡単そうですね。 一度試してみます。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A