Ошибка при использовании фильтра компиляции байт-кода, PERL - PullRequest
0 голосов
/ 10 октября 2011

Когда я компилирую, используя: 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 голосов
/ 01 февраля 2012

Безотносительно, я бы посмотрел на эту проблему my.Что касается того, почему работающий двоичный файл все еще имеет эту проблему, pp может легко пропустить зависимости, но у него есть динамический способ противостоять этой проблеме.Попробуйте запустить pp -x script, и он запустит скрипт, чтобы найти любые зависимости во время выполнения.Также я думаю, что есть переключатель для ручного добавления зависимостей в список.

0 голосов
/ 10 октября 2011

Ошибка говорит о том, что вы пытаетесь использовать модуль Perl не может найти. Обычная причина в том, что у вас не установлен этот модуль.

Отсутствие прав на чтение файла модуля также может привести к этой ошибке, но это почти никогда не проблема.

...