#perl #compilation #binary #bytecode
#perl #Сборник #двоичный #байт-код
Вопрос:
Когда я компилирую с помощью: 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)
Хотя скомпилированный двоичный файл работает, но как я могу исправить ошибку?
Спасибо!
Комментарии:
1. Похоже, мне нужно установить модуль байт-кода?
Ответ №1:
Ошибка говорит, что вы пытаетесь использовать модуль, который Perl не может найти. Обычная причина в том, что у вас не установлен этот модуль.
Отсутствие разрешений на чтение файла модуля также может привести к этой ошибке, но это почти никогда не проблема.
Комментарии:
1. Я установил модуль, а затем программа, похоже, компилируется с другой ошибкой, но эта точно такая же ошибка появляется при ЗАПУСКЕ двоичного файла
Ответ №2:
Как бы то ни было, я бы изучил эту my
проблему. Что касается того, почему у запущенного двоичного файла все еще есть эта проблема, pp
вы можете легко пропустить зависимости, но у него есть динамический способ противостоять этой проблеме. Попробуйте запустить pp -x script
, и он запустит скрипт для поиска любых зависимостей во время выполнения. Также я думаю, что есть переключатель для ручного добавления зависимостей в список.