我有一个功能完善的perl脚本(用debian linux上的bash终端编写)在使用pp
编译时无法执行(在linux或windows上)。这可能与构建中的未满足的依赖关系有关,但我相信以下命令将所有依赖关系打包到可执行文件中:
pp -o out.exe in.pl
当我说它完全正常运行时,我的意思是如果我从bash终端调用./in.pl
,那么生成的预期输出没有错误。
我想创建一个可在linux或windows上运行的可执行文件(如果每个操作系统都需要一个单独的文件,那就这样吧。)
这些是包含在源中的包:
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.
从运行时错误判断,问题可能与未满足的递归依赖关系有关(例如,Finance :: QuoteHist中的依赖关系)。也许这些递归依赖应该明确包含在内?这是我第一次尝试将perl编译成可执行文件,所以感谢您提供的任何指导。