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 :
- Verwenden Sie zum Vorbinden einer Bibliothek den folgenden Befehl für die Archivdatei:
# ld -r libfoo.a -o libfooa.o - Das FORTRAN-Programm something.f wird wie folgt kompiliert und gebunden:
# xlf something.f libfooa.oBeachten Sie, dass die vorab gebundene Bibliothek wie eine andere normale Eingabedatei behandelt wird, nicht mit der üblichen Bibliotheksidentifikationssyntax (-lfoo).
- 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 - 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