Effiziente Verwendung des Befehls ld

Der Binder (der als letzte Stufe eines Kompiliervorgangs oder direkt durch den ld-Befehl aufgerufen wird) hat Funktionen, die im typischen UNIX-Linker nicht zu finden sind.

Diese Situation kann zu längeren Verbindungszeiten führen, wenn die zusätzliche Leistung des Betriebssystembinders nicht ausgenutzt wird. Dieser Abschnitt beschreibt einige Verfahren für eine effizientere Verwendung des Binders.

Beispiele

Das folgende Beispiel veranschaulicht die effiziente Verwendung des Befehls ld :

  1. Verwenden Sie zum Vorbinden einer Bibliothek den folgenden Befehl für die Archivdatei:
    # ld -r libfoo.a -o libfooa.o
  2. Das FORTRAN-Programm something.f wird wie folgt kompiliert und gebunden:
    # xlf something.f libfooa.o

    Beachten Sie, dass die vorab gebundene Bibliothek wie eine andere normale Eingabedatei behandelt wird, nicht mit der üblichen Bibliotheksidentifikationssyntax (-lfoo).

  3. Verwenden Sie den folgenden Befehl, um das Modul erneut zu kompilieren und das ausführbare Programm erneut zu binden, nachdem ein Fehler behoben wurde:
    # xlf something.f a.out
  4. Wenn die Fehlerkorrektur jedoch zu einem Aufruf einer anderen Subroutine in der Bibliothek geführt hätte, würde die Bindung fehlschlagen. Das folgende Korn-Shell-Script testet auf einen Fehlerrückkehrcode und führt eine Wiederherstellung durch:
    # !/usr/bin/ksh
    # Shell script for source file replacement bind
    #
    xlf something.f a.out
    rc=$?
    if [ "$rc" != 0 ]
    then
    echo "New function added ... using libfooa.o"
    xlf something.o libfooa.o
    fi