Perlをexe化するPARについて質問です。
非Cygwin環境のWindowsXPでActivePerl5.86
をインストールしています。
PARを使ってperlスクリプトをexeにしたいのですが、cmdでコマンドを打つとAutoloaderの
エラーとなります。
@INCの環境変数のパスに必要なファイルが
入っていないからだとは思うのですが、ちょいとチェックする時間がとれません。
済みませんが日本語でPARのインストールから必要なライブラリのインストール。
perlのexe化までを詳細に書いてあるページを教えてください。
ページではなくて申し訳ないですが、PARが何度か使ったことがあるので。
PARをインストールするには、PARが使う以下のモジュールが予めインストールされている必要があります。
(現在の最新版であるPAR 0.87が要求するモジュール)
・File::Temp 0.05以降
・Compress::Zlib 1.16以降
・Archive::Zip 1以降
・Module::ScanDeps 0.06以降
・PAR::Dist 0.06以降
・Parse::Binary 0.04以降
・Win32::Exe 0.04以降
・Digest (Digest::SHAまたはDigest::SHA::PurePerl)
・Module::Signature 0.35以降
大半は、ActivePerl御なじみのPPM形式での配布が行われていないので、CPANからソースをダウンロードしてインストールしなければなりません。
インストール方法はVisualC++があるのを前提として、
perl makefile.pl
nmake
nmake test
nmake install
になります。
(これは原則、どのモジュールも共通)
で、これらモジュールインストールが終わってから最後にPARをインストールします。
http://namazu.org/~satoru/diary/20040716.html
PAR: Perl のスクリプトを Windows 用の実行ファイル (exe形式) に変換する : いやな日記
使い方(exe化)についてはこちらを見た方が私が説明するよりも分かりやすいと思います。
でも、PARってexe化したファイルの実行時に展開したデータを終了後に消さないのでゴミ(格納されていたPerlスクリプトのソースそのもの他)がのこるんですよねぇ(ぉ
> VisualC++が必要なんですね。。。
> 因みにBorandなどのフリーのCコンパイラでも
> makeできるのでしょうか?
>
> C,C++は経験が無いためちょっと分からないので
> 便乗して質問させていただけませんか?
便乗の方だけ回答します。
nmakeって知らないんですが、Microsoftの方もIDE以外のコマンドラインの方は無償利用可能にしています。
(#a1 の nmakeをmakeに代替することで解決する可能性も有るとは思います)
URLからダウンロードページにいけます。
# こういうベンダからのフリー化で、不法コピーソフトを利用する馬鹿が減れば良いと思うんですがね。
情報有り難うございます。
あとでぺージをチェックしてみて、できそうでしたら
環境を構築してみたいと思います。
http://www9.ocn.ne.jp/~ymt/perl/activeperl_mingw.html
MinGW で CPAN のモジュールをコンパイルする方法
> 因みにBorandなどのフリーのCコンパイラでも
> makeできるのでしょうか?
できます。
gcc(MinGW)とかマイクロソフトがコンパイル専用にだしたVisual C++ Toolkit 2003でも一応できます。
ただ、それぞれ使えるようにするには下準備が必要になります。
(何をしなければいけないのかについてはGoogleで検索するといろいろ見つかります)
http://www.hatena.ne.jp/1107009118
人力検索はてな - CGI(Perl)のソースコードを隠蔽する方法を探しています。 Windows(ActivePerl)で開発し、Lnuxで運用する予定ですので 両方で使える物を教えて下さい。 一応perlccを試しま..
> そいではPARでexeにするのってソース
> 隠すためには使えないんですねorz
そうですね。
過去の質問でも回答しましたが、
PARはスクリプトのソースをPerlコンパイラと一緒にそのまま圧縮してパッケージにしているだけなのでただ「Perlをインストールしていない環境でもすぐに使いたい」という用途にしか向きませんね。
再度解答ありがとうございました。
とても勉強になりました。有り難うございます。
gccを使って構築するのが一番無難そうなので
ページを参考に環境を作ってみます。
問題が解決しましたのでここら辺で質問を
終了させていただこうかと思います。
ご丁寧に有り難うございました。
VisualC++が必要なんですね。。。
因みにBorandなどのフリーのCコンパイラでも
makeできるのでしょうか?
C,C++は経験が無いためちょっと分からないので
便乗して質問させていただけませんか?
今までperlだけで作業の効率化をするためにスクリプトを書いておりまして、ほかのActivePerlがない
環境でも使えるようにするためにexe化しようと思ってたんです。
>でも、PARってexe化したファイルの実行時に展開したデータを終了後に消さないのでゴミ(格納されていたPerlスクリプトのソースそのもの他)がのこるんですよねぇ(ぉ
ありゃ。そうなんですか。
そいではPARでexeにするのってソース
隠すためには使えないんですねorz