Ein Shared Object wird mit Hilfe des Kommandos genso erzeugt. Die Optionen und Parameter entsprechen weitgehend denen des Kommandos cc.
-B plam ...
-B ar
Innerhalb dieser Klammer werden die Optionen –L
und -l
so interpretiert, dass PLAM-Bibliotheken verarbeitet werden können, zusätzlich wird die neue Option -m
interpretiert.
-B static
-B dynamic
Gibt an, ob ar-Bibliotheken oder dynamische Bibliotheken zum Generieren des Shared Object verwendet werden sollen.
Verwendung nur beim Generieren.
-B symbolic
Gibt den Auflösungsalgorithmus an.
-L verzeichnis
Gibt das Verzeichnis an.
-L bs2000_user_id
Gilt nur zwischen –B plam
und –B ar
und gibt die BS2000-Benutzerkennung an:
$
steht für TSOS.
.
(Punkt) steht für die Benutzerkennung, unter der die Anwendung abläuft.
%name
die Benutzerkennung wird der Umgebungsvariablen name entnommen.
-l xxx
Gibt die Bibliothek an: libxxx.a oder libxxx.so
Wenn -l xxx
zwischen –B plam
und –
B ar
angegeben wird, dann ist xxx
der Name der BS2000-Bibliothek.
-m member
Gilt nur zwischen –B plam
und –B ar
und gibt den Namen des Elements der PLAM-Bibliothek an (L-Element).
-o output
Gibt die Ausgabe an.
-S low | high
Der Inhalt des Shared Object wird auf stdout ausgegeben; im Falle von low
ist dies nur das aktuelle Objekt, im Falle von high
zusätzlich noch alle davon abhängigen Shared Objects.
-X lang=c |
lang=c++ |
lang=cobol
Gibt die Programmiersprache des nachzuladenden Objekts an. Mischungen sind möglich.
Standardwert ist lang=c
.
file.o
Beim Generieren verwendete o-Datei.
Andere geläufige UNIX-Optionen wie -h name
, -Kpic
und -b
werden nicht unterstützt.
Das Kommando genso erzeugt die so-Datei. Wenn die Option -B symbolic
nicht angegeben wird, dann werden bereits zum Generierungszeitpunkt die Externverweise so weit wie möglich aufgelöst. Die Objekte in der so-Datei werden dabei zu einem Großmodul gebunden. Beim Laden erhält das Shared Object selbst die höchste Priorität beim Auflösen der Verweise.
Prioritätsregeln für die Suche nach einer Bibliothek
Für die Suche nach Bibliotheksverzeichnissen gelten folgende Prioritäten:
Verzeichnisse, die in der Variablen LD_LIBRARY_PATH enthalten sind
Verzeichnisse, die über die Option
-L
definiert sinddas Standard-Verzeichnis /usr/lib