我正在使用 PAR Packer (1.012) 打包 perl 脚本以进行分发,如下所示:
pp -c -o 脚本 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
这也包含在包装中。
我该如何解决/调试这个?