Unix-gcc: Einbinden von shared libraries
-
Hallo,
ich habe ein shared object kompiliert, dass mit libjava.so und libjvm.so verlinkt wurde.
Kann ich das erzeugte *.so nun auf anderen Maschinen mit dem gleichen Betriebssystem (z.B. HP-UX) zum Einsatz bringen, ohne es dort vorher noch einmal zu kompilieren? Der Pfad zu Java J2SE ist evtl. anders und so unterscheidet sich der LD_LIBRARY_PATH auf beiden Maschinen.
Ich hatte Probleme mit der Ausführung eines erzeugten *.so auf einer anderen Maschine und musste es dort neu kompilieren. Es gab Fehler beim Initialisieren der Library, wenn ich mich recht erinnere. Nach der erneuten Kompilierung lief es wunderbar.
Mein Chef jedenfalls glaubt mir nicht, dass im Makefile zu verlinkende shared librarys mittel -l und -L eingebunden werden müssen, denn es gibt ja den LD_LIBRARY_PATH, der während der Ausführung benutzt wird und der auf die Librarys zeigt. Und ausserdem glaubt er, dass alle *.so auf allen Maschinen gleichen Typs laufen - ohne nochmalige Kompilierung.
Für eine Antwort bin ich sehr dankbar.
EternalLight
-
wende dich nochmal ans unix/linux forum, denke, da schauen mehr wissende der materie hinein.