PerlスクリプトのEXE化
PerlスクリプトのEXE化については、いろいろな方がブログ等で書かれていますが、ちょっとハマってしまったのでメモしておきます。
【参考にしたページ】
http://blog.remora.cx/2010/02/par-activeperl-5101-build-1007.html
【私のPC環境】
Windows7 Home Premium x64
ActivePerl v5.12.2 build1203 Win32版(あえてWin64版ではなくWin32版にしました)
【インストール前の準備】
私のPCには、他のソフトウェア開発のためにVisual Studio 2010 Expressをインストールしています。c++コンパイラやnmake.exeを使うために、Visual Studioのインストールフォルダにpathを通していました。この状態だと PAR::Packer のコンパイルが失敗するので、Path環境変数から一時的にVisual Studio関係の設定を削除しました。
この準備をした上で PAR::Packer をコンパイルすると、MinGWに含まれるgccやdmakeが使われるようです。
【インストール手順】
1) Perl Package Managerを使って、以下のモジュールをインストールする。
- Module::ScanDeps
- Win32::Exe
- Parse::Binary
- Getopt::Argvfile
- PAR
- PAR::Dist
- MinGW
※ Perl Package Mangerでインストールするモジュールの名前を入力するとき、:: の代わりに - を書きます(例: Module::ScanDeps → Module-ScanDeps)。
2) コマンドプロンプトを開いて、下記のコマンドを実行する。
C:\> cpan -fi PAR::Packer
※上記コマンド実行完了までに、私のPCで15分程度かかりました(CPU:Core2 Quad 2.5GHz, Mem:4GB)。
【EXE化の手順】
Perlスクリプトのあるフォルダでコマンドプロンプトを開いて、以下の書式で pp コマンドを実行する。
C:\scripts> pp <Perlスクリプト・ファイル名> -o <EXEファイル名>
(実行例)
C:\scripts> pp cr-u.pl -o cr-u.exe