使用字节码编译过滤器PERL时出错

时间:2011-10-10 12:32:22

标签: perl compilation binary bytecode

当我使用:pp -I lib -f Bytecode -o myapp_binary_bytecode myapp

进行编译时

我收到此错误:

"my" variable $fh masks earlier declaration in same scope at /Library/Perl/5.12/PAR/Filter/Bytecode.pm line 60.
Can't locate B/Bytecode.pm in @INC (@INC contains: /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.3/darwin-thread-multi-2level /Library/Perl/Updates/5.12.3 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 .) at (eval 1) line 18.
BEGIN failed--compilation aborted at (eval 1) line 18.
BEGIN failed--compilation aborted.
Cannot transform /var/folders/cd/rwsp63c15bb01r89z76_bvr40000gn/T/Q3ubgSUe8P to /var/folders/cd/rwsp63c15bb01r89z76_bvr40000gn/T/LIcOpNf_Oh: No such file or directory (512)

虽然编译后的二进制文件有效但是如何修复错误?

谢谢!

2 个答案:

答案 0 :(得分:0)

错误说您正在尝试使用module Perl无法找到。通常的原因是您没有安装该模块。

缺少读取模块文件的权限也可能导致该错误,但这几乎不是问题。

答案 1 :(得分:0)

无关紧要,我会研究my问题。至于为什么运行的二进制文件仍有这个问题,pp很容易错过依赖关系,但它有一个动态的方法来解决这个问题。尝试运行pp -x script,它将运行脚本以查找任何运行时依赖项。另外我认为有一个用于手动将依赖项添加到列表的开关。