1

次のように、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

これもパッケージに含まれています。

これを解決/デバッグするにはどうすればよいですか?

4

1 に答える 1

0

たぶん、2つのマシンが非常に異なるため、異なるlibが必要ですか?1つは32ビット、もう1つは64ビットですか?

可能であれば、純粋なperlスクリプトのみを使用するか、プログラムを同じ環境にパッケージ化する必要があります。

仮想マシンを使用し、同じLinuxをインストールして、そこにパッケージを作成します。

于 2012-02-17T07:51:31.017 に答える