Ein Zwang von LD_PRELOAD nur auf HP-Plattform und nicht auf anderen Unix-Varianten (AIX, Linux und Solaris).Warum muss ich LD_PRELOAD für libcl.2 verwenden, um XML :: LibXML :: Common unter HP/UX zu verwenden?
Ich baute Perl-Modul XML::LibXML::Common auf allen Unix-Flavors.I musste LD_PRELOAD speziell für libcl.2-Bibliothek auf HP-Plattform nur tun. Während auf anderen Unix-Plattformen nichts als solches erforderlich war.
Ist dies ein Betriebssystem Verhalten oder etwas wirklich fehlt in HP Loader/Compiler?
ich ein Perl-Skript ausgeführt wird, die einfach ein neues Objekt erstellt "XML :: LibXML :: SAX"
use XML::LibXML::SAX;
$x = XML::LibXML::SAX->new();
und beschwerte sich für
kann nicht geladen werden ‚site_perl/5.8.8/PA-RISC2.0-thread-Multi/auto/XML/LibXML/Common/Common.sl‘für Modul XML :: LibXML :: Häufig: Exec format error
und wenn ich das tue die LD_PRELOAD für libcl.2 der Fehler geht a Weg und die Perl ist für eine Multi-Thread-Unterstützung gebaut.
Ja, ich musste LD_PRELOAD auf HP machen. Ich spreche nicht über Umgebung für, wo die Bibliothek mit LIBPATHS zu finden ist (denke, die Synonyme variieren je nach Betriebssystem). Was ich meinte ist, ich musste eine Bibliothek speziell zu laden, und dies hat nichts mit dem Finden einer Bibliothek in env zu tun Variablen. hoffe ich mache Sinn. – kadeshpa
Warum mussten Sie die Bibliothek laden? War es das Überschreiben von Symbolen aus einer anderen Bibliothek? Gibt es eine libcl.sl, die du ersetzen musst? Im Moment haben Sie nicht erklärt, was schief gelaufen ist, bevor Sie LD_PRELOAD gemacht haben. Also, ich bin verwirrt; Der Mangel an anderen Antworten deutet darauf hin, dass andere auch sind. –