2011-10-10 31 views
0

當我編譯使用:pp -I lib -f Bytecode -o myapp_binary_bytecode myapp錯誤使用字節碼編譯過濾器,PERL

我得到這個錯誤:

"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) 

雖然編譯的二進制的作品,但我怎麼能解決這個錯誤嗎?

謝謝!

+0

看起來我需要安裝字節碼模塊? – 3zzy

回答

0

錯誤表示您正在嘗試使用module Perl找不到。通常的原因是您沒有安裝該模塊。

缺少讀取模塊文件的權限也可能導致該錯誤,但這幾乎從不是問題所在。

+0

我安裝了模塊,然後程序似乎編譯了一個不同的錯誤,但是這個完全相同的錯誤出現在運行二進制文件 – 3zzy

0

無關緊要,我會研究一下my的問題。至於爲什麼運行的二進制文件仍然存在這個問題,pp可能很容易錯過依賴關係,但它有一個動態的方法來解決這個問題。嘗試運行pp -x script,它將運行該腳本以查找任何運行時依賴關係。另外我覺得有一個開關用於手動添加依賴項到列表中。