重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Delphiで、フォームにコントロールを貼り付けただけのプログラムをコンパイルし、
実行形式ファイルを作成しましたら、約500KBになりました。
あまりにも大きいので、小さくならないものかとネット上を探しましたら、

URL : http://f29.aaa.livedoor.jp/~morg/wiki/index.php? …
>環境設定
>ファイルサイズを小さくするには
>
>Delphiの実行ファイルは通常かなりサイズが大きいですが、
>小さくすることができます。
>「ライブラリの参照」から、 動作させる環境で必要のないものだけを除きます。
>(除いた後の動作確認を忘れずに)
>そして、プロジェクトオプションの、「実行時のパッケージで再構築」の、
>部分に、必要なものだけを記述して再構築します。

というものがありました。

実際には、「プロジェクト」-「オプション」-タブ「パッケージ」の
「実行時パッケージを使って構築」にチェックを入れました。
結果、約20KBになりました。


これは、いったいどういうこのなのでしょうか?
(実行時にはランタイムライブラリ等が必要になる?)
ヘルプを見てみましたが、よく分かりませんでした。

また、URLのページで説明にある
1:『「ライブラリの参照」から、 動作させる環境で必要のないものだけを除きます。』
2:『「実行時のパッケージで再構築」の、部分に、必要なものだけを記述して…』
とありますが、具体的にどのように指定するのでしょうか?
(1はパス指定のようだが、2はdcpファイルを指定?)

A 回答 (3件)

>これは、いったいどういうこのなのでしょうか?



”実行時パッケージを使う”とした場合、EXEファイルは
コンパクトになりますが、実行時パッケージ(ランタイム)が
必要になります。(バージョンによるけど、1.8MB以上)

EXEファイルに静的に組み込めば、500KBで済むものが、
ランタイムだと、1.8MB以上ですから、1つのEXEファイルを
配布するなら、ランタイムを使うより、静的リンクの方が
全体としてコンパクトと言うことになります。
数多くのEXEファイルがある場合、個々に静的リンクするより
ランタイムを利用した方がコンパクトです。

その辺の判断は、人によって変わると思います。

なお、Delphiが使っているスマートリンクなる手法は、
使わないモノは、EXEファイルに含めないので、無駄に
大きなEXEファイルを作っているわけではありません。
(不要なモノは組み込まれない)

配布相手を考えて、適宜、使い分けるのがよろしいかと。

この回答への補足

なるほど。分かり易い説明をありがとうございます。

ということは、EXEファイル単体で動かそうとするとき、
サイズを小さくしたいなら #1 さんの方法を使ったほうがいいということですね。

ちなみに私が使用しているものはDelphi6 Personal なのです。
これにスマートリンクの機能はあるのでしょうか?

補足日時:2005/05/31 11:57
    • good
    • 0

古いバージョンのDELPHIしか使ってないので、最近のモノは判りませんが..



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

この回答への補足

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

補足日時:2005/06/02 18:25
    • good
    • 0

ライブラリーの依存関係とかを把握しとかないと難しいんじゃないでしょうか?


http://homepage2.nifty.com/maskp/
こういうのが早いと思います
exe を exe のまま 圧縮します。

参考URL:http://homepage2.nifty.com/maskp/

この回答への補足

ありがとうございます。

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

補足日時:2005/05/31 10:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!