Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Binden der CRTE-Laufzeitbibliotheken

&pagelevel(5)&pagelevel

Die offenen Externbezüge auf die C- und C++-Laufzeitsysteme werden vom Binder per Autolink (RESOLVE-BY-AUTOLINK) aus den PLAM-Bibliotheken des CRTE aufgelöst.

C-Laufzeitsystem

Wenn Code erzeugt wird, können die Module des C-Laufzeitsystems auf folgende Arten mit den Kommandos ccc11, c89 und CC gebunden bzw. nachgeladen werden:

  1. Dynamisches Nachladen des C-Laufzeitsystems (Bindetechnik Partial-Bind)

    Die Bindetechnik Partial-Bind ist gibt es in zwei Varianten:

    • Standard Partial-Bind (-d y)

      Standardmäßig, d.h. ohne Angabe von speziellen Binder-Optionen, wird aus der Bibliothek SYSLNK.CRTE.PARTIAL-BIND eingebunden. Diese Bibliothek enthält Verbindungsmodule, die alle offenen Externbezüge des zu bindenden Bindemoduls auf das C- und COBOL-Laufzeitsystem befriedigen. Es werden nur die benötigten Verbindungsmodule eingebunden. Benötigt ein von der zu bindenden Anwendung nachgeladener Modul Entries des Laufzeitsystems, so kann es zu unbefriedigten Externbezügen kommen, da die Verbindungsmodule zu dessen Entries nicht zwangsläufig schon eingebunden sein müssen. In diesem Fall sollte mit der Technik Complete Partial-Bind gebunden werden (siehe auch CRTE-BHB).

      C- und COBOL-Laufzeitsystem selbst werden zum Ablaufzeitpunkt dynamisch nachgeladen, und zwar entweder aus dem Klasse-4-Speicher, falls das C-Laufzeitsystem vorgeladen ist, oder aus der Bibliothek SYSLNK.CRTE.

      Das fertig gebundene Programm benötigt deutlich weniger Plattenspeicher als beim statischen Einbinden des C-Laufzeitsystems aus der Bibliothek SYSLNK.CRTE (siehe 2.). Außerdem wird die Ladezeit verkürzt. Beim Programmaufruf muss das passende CRTE verfügbar sein.

    • Complete Partial-Bind (-d compl)

      In diesem Fall wird aus der Bibliothek SYSLNK.CRTE.COMPL eingebunden. Grundsätzlich wird beim Complete Partial-Bind analog wie beim Standard Partial-Bind verfahren. Beim Complete Partial-Bind enthalten jedoch die in SYSLNK.CRTE.COMPL bereitgestellten Verbindungsmodule alle Entries und externen Daten des kompletten C- und COBOL-Laufzeitsystems. Damit sind unbefriedigte Externbezüge, wie sie beim Nachladen von Modulen einer mit der Technik Standard Partial-Bind gebundenen Anwendung auftreten können, beim Complete Partial-Bind ausgeschlossen.
      Wenn Sie im POSIX Shared Libraries einsetzen, ist erfolgreiches Binden nur mit Complete Partial-Bind gewährleistet.

    Nähere Informationen zu den Partial-Bind-Bindetechniken finden Sie im Handbuch „CRTE“ [5].

  2. Statisches Binden des gesamten C-Laufzeitsystems (-d n)

    Bei Angabe der Binder-Option -d n (siehe "Binder-Optionen") werden alle notwendigen Einzel-Module des C-Laufzeitsystems aus der Bibliothek SYSLNK.CRTE eingebunden.

  3. Offenlassen der Externbezüge auf das C-Laufzeitsystem (-z nodefs)

    Bei Angabe der Binder-Option -z nodefs (siehe "Binder-Optionen") wird das Programm ohne ein RESOLVE auf die C-Laufzeitbibliothek gebunden. Die offenen Externbezüge werden erst zum Ablaufzeitpunkt aus dem in den Klasse-4-Speicher vorgeladenen C-Laufzeitsystem befriedigt. -z nodefs wird beim Binden von C++-Programmen (CC-Kommando) nicht unterstützt.

Die C++-Bibliothek für den Cfront-C++ Sprachmodus V2

Die Module der Cfront-C++-Bibliothek (SYSLNK.CRTE.CPP) und des Cfront-C++-Laufzeitsystems (SYSLNK.CRTE.CFCPP) können nur statisch eingebunden werden. Diese Bibliotheken werden zusätzlich zum C-Laufzeitsystem automatisch eingebunden, wenn im CC-Kommando der Cfront-C++-Modus (Option -X v2-compatible) angegeben wird.

Siehe auch Binder-Option -l, "Binder-Optionen".

Die C++-Bibliothek für den Sprachmodus C++ V3

Die Module der Standard-C++ V3-Bibliothek (SYSLNK.CRTE.STDCPP) und des C++-Laufzeitsystems (SYSLNK.CRTE.RTSCPP) können nur statisch eingebunden werden. Diese Bibliotheken werden zusätzlich zum C-Laufzeitsystem automatisch eingebunden, wenn im CC-Kommando der C++ V3-Modus (Option -X v3-compatible) angegeben wird.

Siehe auch Binder-Option -l, "Binder-Optionen".

C++-V3-Bibliothek Tools.h++

Die Module der Bibliothek Tools.h++ (SYSLNK.CRTE.TOOLS) können nur statisch eingebunden werden. Die Bibliothek steht nur im C++ V3-Modus zur Verfügung (Option -X v3-compatible) und wird nur eingebunden, wenn zusätzlich die Binder-Option -l RWtools angegeben wird.

Siehe auch Binder-Option -l, "Binder-Optionen".

Die moderne C++-Bibliothek für die Sprachmodi C++ 2017 und C++ 2020

Die Module der modernen C++-Bibliothek können nur statisch eingebunden werden. Diese Bibliothek wird zusätzlich zum C-Laufzeitsystem automatisch eingebunden, wenn im CC-Kommando der C++ 2017-Modus (Option -X 2017) oder C++ 2020-Modus (Default oder Option -X 2020) angegeben wird. Die genutzt Datei hängt von der Bibliotheks-Version ab: bei Bibliotheks-Version 1 ist es SYSLNK.CRTE.CXX01, bei Bibliotheks-Version 2 ist es SYSLNK.CRTE.CXX02.

Siehe auch Binder-Option -l, "Binder-Optionen".

POSIX-Bindeschalter

Die mit CRTE angebotenen „Bindeschalter“ posix.o und postime.o (entspricht in BS2000-Umgebung der CRTE-Bibliothek SYSLNK.CRTE.POSIX) werden automatisch eingebunden. Die im C-Laufzeitsystem doppelt vorhandenen Zeitfunktionen, Signalbehandlungsfunktionen und die Funktion clock werden deshalb generell mit POSIX-Funktionalität ausgeführt. Es ist grundsätzlich die gemischte Verarbeitung von POSIX- und BS2000-Dateien möglich. Weitere Einzelheiten entnehmen Sie bitte dem Handbuch „C-Bibliotheksfunktionen für POSIX-Anwendungen“ [2].