Как отладить разрешение символов PAR Packer?

Я использую PAR Packer (1.012) для упаковки Perl-сценариев для распространения, вот так:

pp -c -o script script.pl

Когда я перевожу его на компьютер без использования различных библиотек, сценарий установлен, и он выдает следующее сообщение об ошибке:

Can't find 'boot_Compress__Raw__Zlib' symbol in
/tmp/par-root/cache-206d7ce41fbe60d4e890ae3ac7d39bfc7ce2d710/d6103eb0.so
at /usr/share/perl5/Archive/Zip.pm line 12 Compilation failed in
require at /usr/share/perl5/Archive/Zip.pm line 12. BEGIN
failed--compilation aborted at /usr/share/perl5/Archive/Zip.pm line
12. Compilation failed in require at -e line 358.

Таким образом, похоже, отсутствует библиотека Zlib.so, которая содержит символ. Компилируя с -vv для отладки, я вижу, что Zlib включен:

Written as "auto/Compress/Raw/Zlib/Zlib.so" Packing
"/tmp/par-jag/cache-044524c2d7fff164771e45125a48ca260a890c0c/5f10a097.so"...

и я подтвердил, что это упакованный архив. Я также проверил библиотеку, что она жалуется, что не может найти символ в:

Written as "auto/IO/IO.so" Packing
"/tmp/par-jag/cache-044524c2d7fff164771e45125a48ca260a890c0c/d6103eb0.so"...

Я понятия не имею, как решить эту проблему. Кроме того, если я устанавливаю perl-Compress-Raw-Zlib на целевую коробку, я просто сразу отказываю в другой библиотеке.

Can't find 'boot_Term__ReadKey' symbol in
/tmp/par-jag/cache-206d7ce41fbe60d4e890ae3ac7d39bfc7ce2d710/d6103eb0.so

Который также входит в комплект.

Как я могу решить / отладить это?

1 ответ

Может быть, две машины настолько разные, что им нужна разная библиотека? Один 32-битный другой 64-битный?

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

Используйте виртуальную машину, установите на нее тот же linux и создайте там пакет.

Другие вопросы по тегам