2009-06-21 13 views
2

これは私の最初の投稿であり、私は誰かが正しい方向に私を指すことができることを願っています。私はGoogleを試みたが、何も出てこない。実際には、ヒットはほとんど得られないので、これはかなりわかりにくいエラーになると思います。PerlのClass :: XSAccessorがArray.soを見つけることができないのはなぜですか?

私は、Solaris 10上でperlのアプリケーション(squeezecenter-7.3.3)を実行し、次のエラーを取得しようとしています:

"ld.so.1: perl: fatal: relocation error: file /opt/squeezecenter-7.3.3/CPAN/arch/5.10.0/i86pc-solaris/auto/Class/XSAccessor/Array/Array.so: symbol get_next_arrayindex: referenced symbol not found"

ld.so.1のは、検索パスにあるが、私は」することができますどのような— ld.so.1またはArray.so —が原因でエラーが発生します。どんな助けもありがとう。

おかげ

+1

"perl -V"の出力は何ですか?おそらくあなたは別のperlバージョン(5.8.xなど)を使用しています。 –

答えて

7

LATE UPDATE 2009-12-04

クラスの現在のバージョン:: XSAccessorは、両方のクラスが含まれています:: XSAccessor自体とクラス:: XSAccessorは::配列。 AutoXS.hはAutoXS.hを生成するためにAutoXS.hを使用しませんが、静的なコピーを提供します。したがって、この問題を引き起こす問題は、(再び)起こるべきではありません。


クリスシモンズのアイデアは良いものですが、これはあなたが抱えている問題ではありません。あなたが使用しているClass::XSAccessor::ArrayのバージョンとそれがコンパイルされたAutoXS::Headerのバージョンとの間に互換性がない可能性が最も高いです。

実際に保証されている問題は、CPANからClass :: XSAccessorを再インストールすることです。 AutoXS :: Headerの互換バージョンを取得する必要があります。おそらく、これについてSlimDevices/Logitechフォーラムに投稿してください。

もっと一般的に言えば、問題の両方のモジュールの作成者として、私は確信していませんなぜこの問題はまったく発生していません。 AutoXS :: Headerのバージョン1.02への依存は、最新のClass :: XSAccessor :: Arrayリリースの一部です。したがって、依存関係が正しく満たされていれば、すべてがうまくいくはずです。 SqueezeCenterの人々がバンドルされたモジュールをどのように更新するかは、ある種の特殊性があります。そうでない場合は、私に連絡してください。

*残りの1つの問題は、SqueezeCenterに付属のClass :: XSAccessor :: ArrayがCPANからインストールされたもの(潜在的にはシステム)に優先されることがあります。その場合は、/opt/squeezecenter.../CPANディレクトリにインストールしてみてください。

+1

迅速な対応に感謝します。私はSlimDevices/Logitechフォーラムにも投稿しますが、最初はエラーメッセージのためにこれがスクイズセンターの問題であるかどうかはわかりませんでした。 – r00tuk

+0

間違ってはいけないでください。私は指差しになりたくありません。必ずしもSqeezeCenterの問題ではありません。それは私のように見えますが、そうでないことが判明した場合は、誰でもそれを修正するために働くことができます。 – tsee

+1

ああ、私は間違ってそれを取ることは間違いなかった!正直言って、問題がld.so.1かperlモジュールかどちらかではなかったかどうか分からなかったので、どこから始めたらいいかわかりませんでした。私はコンパイルやリンクなどでそれほど心配していません。 – r00tuk

3

問題のモジュールを再インストールします。

cpan -i Class::XSAccessor::Array Class::XSAccessor 

itを手動でインストールしてください。

+0

バージョンに依存しない方法でモジュールにリンクしてください。 http://search.cpan.org/dist/Class-XSAccessor-Array経由で配布するか、http://search.cpan.org/perldoc?Class::XSAccessor::Arrayを介して配布します。新しいバージョンをリリースしてCPANディレクトリをクリーンアップすると、バージョン1.04へのリンクが悪くなります。 – tsee

+1

完了。公平であるように、ほとんどの人はcpanコマンドを使用していました。 – scvalex

+1

このコマンドで余分な入力をする必要はありません。スイッチがなければ、cpan(1)は-iスイッチを仮定します。 :) –

関連する問題