UIをWin32用の実行形式に
UI(webclient.pl)を使うのにActivePerlが必要なことを散々叩かれたので、まずはそこから。
解決策としては、
がある。
後者は、既に一度perlccでのコンパイルを試みていて、実行ファイルは作れるが実行時エラーで動かないことが分かっている。
(なぜ動かないかは不明。深入りせず)
前者は、最終手段。一度Dで作り直すことを考えたが、どう考えても俺的には、現状(ActivePerl)よりよくない結果になる。
@ PARが最高
昼からずーと、Perlのコンパイルについて調べていると、PARというPerl版JARのようなものがあるとの情報を入手。
んで、試してみたところ、全てうまくいった。
PARの内容については以下のサイトが分かりやすい。
[PAR] perlをexe化 :: ぼくはまちちゃん!
@ 個人的メモ
- スクリプトファイルにBOMがあると実行時エラーになる
BOMなしで保存することで解決。
- 実行ファイルがでかい
webclient.plでは、実行ファイルサイズが約2MBほどになった。
pp(PARのプログラム)によって、作成された実行ファイルは、起動時に破損チェックが行われるため、これ自体はUPXできない。
圧縮する場合は、Perl/bin配下のperl58.dllあたりをUPXした後にppすると、作成される実行ファイルが少し小さくなる。
webclient.plの場合は、 2,249,682 -> 1,787,766。
あまり変わらない。