TOPページへ戻る  PCページへ戻る  一覧へ戻る

EXEファイルを小さくする

Lazarusを起動するとフォームが1つだけ表示されます(フォームはコードエディタの後ろに 隠れて見えない時もあります)。この状態でEXEファイルを生成(=コンパイル(Ctrl+F9))すると、 6MBもの巨大なEXEファイルができます。これはコンパイラのバグが原因で、デバッグコードを除去していない ためです。ここでは、EXEファイルを小さくする方法を記します
 但し、この記述は下のURLに書かれたものと同じです。
http://wiki.lazarus.freepascal.org/index.php/Lazarus_Faq#Why_are_the_generated_binaries_so_big.3F


  • デバッグコードの除去
  • 上のURLに書かれているように、コンパイルしたEXEファイルを下のコマンドで処理することで 取り除くことができます。ウィンドウズの「スタート」→「アクセサリ」→「コマンドプロンプト」でコマンド プロンプト画面を立ち上げます。(Win95系では「DOSプロンプト」となっているかも知れません)

    C:\> cd {Lazarus Install Directory}\pp\bin\i386-win32\
    C:\{Lazarus Install Directory}\pp\bin\i386-win32> strip --strip-all EXEファイルの場所

    この操作で6MBのファイルが1MB程度まで小さくなります。しかし、DelphiでフォームだけのEXEファイル を作ると350kB程度です。そのため、Lazarusで使っているコンパイラは最適化がまだまだのようです。 今後に期待しましょう。


  • UPX圧縮
  • EXEファイルやDLLを圧縮するUPXという方法があります。 これを使うとさらにEXEファイルを小さくすることができます。UPX圧縮を行うソフトUPXは、 strip.exeと同じ以下の場所にあります。

    {Lazarus Install Directory}\pp\bin\i386-win32

    EXEファイルをUPX圧縮するには、upx.exeへEXEファイルをドラッグ&ドロップするだけです。 この操作で1MBのファイルが300kB弱まで小さくなります。一方、Delphiで作ったフォームは 350kBが150kBまで小さくなります。


    僕は上の操作が面倒なので、stripとupxのフロントエンド StripAndUXPを作って使ってます。

TOPページへ戻る  PCページへ戻る  一覧へ戻る