HPプラットフォームでのみLD_PRELOADが強制され、他のUNIXフレーバでは実行されません(AIX、Linux、およびSolaris)。HP/UXでXML :: LibXML :: Commonを使用するために、libcl.2にLD_PRELOADを使用する必要があるのはなぜですか?
すべてのUnixフレーバにPerlモジュールXML::LibXML::Commonをビルドしました.HPプラットフォーム上でlibcl.2ライブラリ用のLD_PRELOADを特に実行しなければなりませんでした。他のUnixプラットフォームでは、何もそのようなものは必要ありませんでした。
これはOSの動作か、HPローダー/コンパイラには本当に欠けていますか?
は、私は単に "::のlibxml :: SAX XML"
use XML::LibXML::SAX;
$x = XML::LibXML::SAX->new();
の新しいオブジェクトを作成し、perlスクリプトを実行していたし、それが
のために訴え読み込むことができません「site_perl/5.8.8/PA-RISC2.0モジュール用のスレッドマルチ/自動/ XML/LibXML/Common/Common.sl 'XML :: LibXML :: Common:Execフォーマットエラー
libcl.2のLD_PRELOADはエラーになります。 Perlはマルチスレッド対応のために構築されています。
はいHPではLD_PRELOADを実行しなければなりませんでした。 私は、LIBPATHSを使ってライブラリをどこで見つけるかについて環境について語っているわけではありません(OSごとに同義語が異なると思います)。私は、ライブラリを特別にロードしなければならないということを意味していました。変数。 私は意味をなさないことを願っています。 – kadeshpa
なぜライブラリをロードしなければなりませんでしたか?別のライブラリのシンボルを上書きしたのですか?置き換える必要があるlibcl.slはありますか?現時点では、LD_PRELOADを実行する前に何がうまくいかなかったか説明していません。だから私は混乱している。他の答えの欠如は、他の答えがないことも示唆しています。 –