2012-01-09 18 views
0

ppを使用してコンパイルしたときに(LinuxまたはWindowsのいずれでも)実行できない完全に機能するperlスクリプト(debian linuxのbash端末で書かれています)があります。これは、ビルドで満たされていない依存関係に関連するかもしれないが、私は、次のコマンドをパッケージに実行可能ファイルにすべての依存関係と信じて実行します。ppを使用してperlソースをコンパイル

pp -o out.exe in.pl 

私は私が意図した出力がエラーなしで生成されることを意味し、それは完全に機能していると言います私が./in.plをbash端末から呼び出すと

LinuxまたはWindowsで実行する実行可能ファイルを作成したいと思います(各OSごとに別々のファイルが必要な場合はそのようにしてください)。

これら

がソースに含まれているパッケージです:それはここでは、助け私が取得エラーメッセージがある場合

use strict; 
use warnings; 
use charnames ":short"; 
binmode(STDOUT,":utf8"); 
use Term::ANSIColor; 
use Number::Format; 
use Finance::Quote; 
use Finance::QuoteHist; 
use Date::Manip;  # this may be included by Finance::QuoteHist 

(警告は、それは長いです):

ERROR: [config_var] invalid zone in SetDate 
ERROR: [config_var] invalid zone in SetDate 
Could not load either Text::CSV_XS or Text::CSV_PP : Can't locate Text/CSV_PP.pm in @INC (@INC contains: CODE(0x1422320) /tmp/par-username/cache-addd1cc2ee9285c150584c1853c2b67c0c482e7e/inc/lib /tmp/par-username/cache-addd1cc2ee9285c150584c1853c2b67c0c482e7e/inc CODE(0x11675b0) CODE(0x116ebc8)) at (eval 30) line 2. 
BEGIN failed--compilation aborted at (eval 30) line 2. 
at Finance/QuoteHist.pm line 13 
Compilation failed in require at Finance/QuoteHist.pm line 13. 
BEGIN failed--compilation aborted at Finance/QuoteHist.pm line 13. 
Compilation failed in require at script/in.pl line 10. 
BEGIN failed--compilation aborted at script/in.pl line 10. 

から判断しますランタイムエラーが発生した場合、この問題はunmet recursive dependencies(例えば、Finance :: QuoteHist内の依存関係)に関連している可能性があります。おそらく、これらの再帰的な依存関係を明示的に含める必要がありますか? Perlを実行可能ファイルにコンパイルしようとしたのはこれが初めてです。ご指導いただければありがとうございます。

+0

実行可能であっても、両方で実行可能なファイルを作成することは非常に困難です。 –

答えて

3

-xフラグをppに表示すると、in the docsと表示される場合があります。スクリプトを実行して依存関係をチェックします。単純に依存関係をスキャンするよりも正確です。私はTkを使用するときにこれを必要とし、それは不思議になりました。

+0

素敵です。 '-x'フラグと' 'STDOUT'裸名の前に' * 'sigilを置くこと('stackoverflow.com/q/2242812/873757)は、' binmode'行にコンパイルに成功しました。ありがとう! – user001

関連する問題