Perlスクリプトをexeファイルに変換
(2011.1.23追記)
同様の用途であれば、PARがおすすめ。
--------------
ふと、そういったものがあるのではと考えて探してみた。
Perl2Exe Home Page (IndigoStar Software)
PerlスクリプトをEXE形式の実行ファイルへ変換「Perl2Exe Lite」 (窓の杜)
perl2exeでは正規表現や2次元の連想配列(ハッシュ)を多用した、複雑なスクリプトも変換して実行できた。
Cで書くのは辛い文字列処理等がある変換ツール等を、配布する場合にはかなり便利。値段がちょっと高いのが難点。
さらに調べてみたらperlcc というのもあるのね。
ActivePerl 5.6.1 Build635 で変換したものは、print "Hello World\n"; だけでもNGだったのだが、
5.8.8 Build822 ではOK。下記のスクリプトくらいだったら、問題なく実行できたのだが、、、(続く)
#!/cygdrive/c/usr/Perl/bin/perl
%Values;
$Values{'test'} = "Hello,World\n";
foreach ( keys %Values )
{
print;
print "\n";
print $Values{$_};
}
前述の1000行近くある複雑なスクリプトだとNG。
perlccは 5.10では削除されているくらいで(下記参照)、
あまり使えるものではないようだ。
ちなみに、ActivePerl の perlcc と Visual C++ でのビルド の仕方。あてずっぽうでやったがうまくいった。
C:\usr\Perl に ActivePerl 5.8 をインストールしているとする。
まず、perlcc.bat -c hogehoge.pl で hogehoge.c を生成する。
Visuial C++ (私の環境は.NET 2003)では「Win32 コンソール プロジェクト」を作成し、アプリケーションの設定で"空のプロジェクト"をチェックして「完了」。
あとはプロジェクトに既存項目の追加で前述の hogehoge.c を追加する。
あとは、プロジェクトのプロパティで、
・C/C++ 全般の 「追加のインクルード ディレクトリ」に C:\usr\Perl\lib\CORE を入れる。
・リンカ の 全般の「追加のライブラリディレクトリ」にも同じく C:\usr\Perl\lib\CORE を入れる。
・リンカ の 入力の「追加の依存ファイル」に perl58.lib を入れる。
これでビルドした exe ファイルは perl58.dll を同じディレクトリに置くか、パスを通しておけば実行できる。
コメントする