[PAR] perlをexe化

ぼくはまちちゃん! こんにちはこんにちは!!

(2005/06/19)

PAR というものを使えばperlスクリプトがwindowsの実行形式(exe)化できるらしい。

仕組みはこんな感じ。

なるほどなるほどー。
いちいちActivePerlをインストールして云々とかしなくても
いきなり実行できちゃうようになるわけだね!すてき!

※ただし拡張子をzipに変えるだけで、中のソースが覗けるけど

で、さっそく使ってみた。ちょっと苦労した!
よって以下はインストールメモだ!

■ActivePerlのインストール

現在の最新版は5.8.7.813。入れちゃダメ。
素直にこれをインストールしたら最終的にPARで作ったexeを実行した時に

「プロシージャエントリポイントPL_memory_wrapがダイナミックリンクライブラリperl58.dllから見つかりませんでした。」

とかよくわからないエラーがでてしまう。
(モジュールとか使わない簡単なスクリプトは動いたけど)

ここで大ハマりしたあげく、ActivePerlのバージョンを落とすことで解決した。

そんなわけで、
http://ftp.activestate.com/ActivePerl/Windows/5.8/
↑ここのActivePerl-5.8.6.811-MSWin32-x86-122208.msiをgetしてインストール!

■ppmの設定

ppmってのはperlのモジュールを、
簡単に探してダウンロード&インストールしたりアンインストールしたりするやつ。
ActivePerlについてくる。

そのままだとモジュールをActiveStateに探しにいくようになっているので、
ここにbribesってところを追加して、優先順位も上げておく。

PAR FAQより。

c:\>ppm3
ppm> rep add bribes http://www.bribes.org/perl/ppm
ppm> rep up bribes
ppm> rep up bribes

■PARに必要なモジュールのインストール

すべてppmを使って行うよ!

(※印は僕がインストールしたバージョン)

ppm> install File-Temp
※0.16
ppm> install Compress-Zlib
Note: Package 'Compress-Zlib' is already installed.
ppm> upgrade Compress-Zlib -install -precious
Compress-Zlib 1.33: new version 1.34 available in bribes
※1.33 → 1.34
ppm> install Archive-Zip
※1.14
ppm> install Module-ScanDeps
※0.51
ppm> install PAR-Dist
※0.07
ppm> install Parse-Binary
※0.09
ppm> install Win32-Exe
※Test-Simple → 0.60, Win32-Exe → 0.08
ppm> install Digest-SHA
※5.28
ppm> install Module-Signature
※0.44

■PARのインストール

これも引き続きppmでインストール!

ppm> install PAR
※0.89
ppm> q

ちゃんとインストールできたかな!

c:\>pp -V
Perl Packager, version 0.12 (PAR version 0.89)
(略)

たぶんok!!

(追記:2008/01/21)
現在ppmでインストールされるPARには、かんじんのppがついてないみたいなので
時代遅れの逆刃: perlスクリプトをWindows用GUIプログラムにする方法 を参考に、
PARのダウンロードと展開、環境変数の設定をやるとよいみたいですよ!

具体的には、
http://www.cpan.org/authors/id/A/AU/AUTRIJUS/ から、PAR-0.89-MSWin32-x86-multi-thread-5.8.6.par をダウンロード
・拡張子をzipにして展開、中身をすべて C:\Perl\PAR にコピー
・マイコンピュータ→プロパティ→詳細設定→環境変数→システム環境変数から以下の変数を探し出して、末尾に書き加える
 Path : C:\Perl\PAR\script
 Perl5lib : C:\Perl\PAR\lib (環境変数Perl5libがなければ新規で)
・ログインしなおすなどして、環境変数を読み込む

■さっそくテストしてみる

メモ帳で簡単なスクリプトを作成。

hello.pl

print "こんにちはこんにちは!\n";
sleep(1);
print "ぼくはまちちゃん!\n";
sleep(1);

ふつうにPerlで実行してテスト。

c:\>perl hello.pl
こんにちはこんにちは!
ぼくはまちちゃん!

うん。ふつうに動く。
じゃあ次は、保存してexe化してみる。

c:\>pp -o hello.exe hello.pl

hello.exeが生成されるので、ダブルクリックして実行!

イヤッッホォォォオオォオウ!

ppのオプション

(実行時にコンソールを出さないようにする)
pp --gui -o hoge.exe hege.pl

(exeのアイコンを指定する)
pp -i hoge.ico -o hoge.exe hege.pl

(データファイルをひっくるめる)
pp -a data.txt -o hoge.exe hege.pl

(使うモジュールを指定してやる) ※うまく検出されなかった時など
pp -M Hamachiya::Konnichiha -o hoge.exe hege.pl

(ヘルプ)
pp -h
※よく知らないけど -more- は [enter] → [space] で一画面進むみたい

書籍の紹介など

[ 技術書 ]

新しい技術を学ぶ。

Perl入門書の定番。 最新版(第3版)と、その続編。

Perlのバイブル。 通称ラクダ本の最新版(第3版)。 2部構成。

その他、テクニック集など。 いずれも良書。

[ ライトセーバー ]

ギミック付のライトセーバープラップレプリカ。
スイッチでライトセーバーの音や光が、振るとクラッシュ音も鳴る本格的アイテム。


はまちや2 <root@hamachiya.com>
Powered by BEARS SERVER PROJECT.