XLINK.EXE: Der macOS-Linker

Aus RAD Studio
(Weitergeleitet von XLINK.EXE: Der OS X-Linker)
Wechseln zu: Navigation, Suche

Nach oben zu Befehlszeilenhilfsprogramme - Index


XLINK.EXE ist die Befehlszeilenoberfläche von XLINK, der C++-Linker für macOS.

Befehlszeilenhilfe

C:\>xlink
Turbo Incremental Link 1.00 Copyright (c) 1997-2011 Embarcadero Technologies, Inc.
Syntax: ILINK objfiles, exefile, mapfile, libfiles, deffile, resfiles
@xxxx indicates use response file xxxx
General Options:                       -Af:nnnn Specify file alignment
 -C       Clear state before linking   -Ao:nnnn Specify object alignment
 -wxxx    Warning control              -ax      Specify application type
 -Enn     Max number of errors         -b:xxxx  Specify image base addr
 -r       Verbose linking              -Txx     Specify output file type
 -q       Suppress banner              -H:xxxx  Specify heap reserve size
 -c       Case sensitive linking       -Hc:xxxx Specify heap commit size
 -v       Full debug information       -S:xxxx  Specify stack reserve size
 -Gn      No state files               -Sc:xxxx Specify stack commit size
 -Gi      Generate import library      -Vd.d    Specify Windows version
 -GD      Generate .DRC file           -Dstring Set image description
Map File Control:                      -Vd.d    Specify subsystem version
 -M       Map with mangled names       -Ud.d    Specify image user version
 -m       Map file with publics        -GC      Specify image comment str
 -s       Detailed segment map         -GF      Set image flags
 -x       No map                       -Gl      Static package
Paths:                                 -Gpd     Design time only package
 -I       Intermediate output dir      -Gpr     Runtime only package
 -L       Specify library search paths -GS      Set section flags
 -j       Specify object search paths  -Gt      Fast TLS
Image Control:                         -Gz      Do image checksum
 -d       Delay load a .DLL            -Rr      Replace resources


Erzeugen der Ausgabe

Mit der Optionsfamilie -Txx können Sie das Erzeugen der Ausgabe steuern:

Option Befehl

-Tmd

Mach-dylib erzeugen

-Tme

Ausführbare Mach-Datei erzeugen

-Tmp

Mach-Package erzeugen

Festlegen der Bibliotheken

Die Suchpfade für die XLINK-Bibliothek können mit den folgenden Optionen gesteuert werden:

Option Beschreibung

-Fr

Legt das logische Stammverzeichnis: $(SYSROOT) fest. Diese Option muss einmal angegeben werden. (Für BCCOSX würden Sie die Option --sysroot verwenden.)

-Fp

Gibt die Remote-Bibliothekspfade an. Pfaden, die mit -Fp angegeben werden, wird $(SYSROOT) vorangestellt und das Ergebnis dem Bibliothekspfad hinzugefügt. In einem RAD Studio-Projekt werden die Remote-Bibliotheken in dem Fenster SDK-Manager angegeben (Sie sollten die SDK-Remote-Pfade bearbeiten). Diese Option kann mehrmals angegeben werden. Dieser Option sollte die Option -Fr vorausgehen.

-L

Legt die lokalen Bibliothekssuchpfade fest.

Sie können die Optionen -L und -Fp verschachteln.

Festlegen des Frameworks

Verwenden Sie die Option -Ff, um ein bestimmtes Framework einzubinden.

Option Beschreibung

-Ff

Weist XLINK an, das angegebene Framework einzubinden. Um beispielsweise das Framework Carbon einzubinden, geben Sie -FfCarbon an.

--framework (BCCOSX-Option)

Weist BCCOSX an, das angegebene Framework einzubinden. Die auf diese Weise angegebenen Framework-Namen werden mit der Option -Ff an XLINK umgeleitet.

In einem RAD Studio-Projekt können die Frameworks in dem Fenster SDK-Manager angegeben werden (Sie sollten die SDK-Remote-Pfade bearbeiten).

Parameter für ausführbare Header

Einer dynamischen macOS-Bibliothek ist ein Installationsname (oder ID-Name) zugeordnet. Dieser String wird in die Datei .dylib eingebettet, die den Pfad der .dylib-Datei repräsentiert. Der Installationsname von CoreServices lautet beispielsweise /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices. Beim Erzeugen einer ausführbaren macOS-Datei oder dynamischen Bibliothek, die von CoreServices abhängt, fügt XLINK einen Record mit der Installationsnamensinformation von CoreServices in das binäre Image ein.

Ein binäres macOS-Image enthält die Header mit den Parametern für das Laden. Einige dieser Parameter enthalten dynamische Bibliothekspfade, die beim Linken unbekannt sein könnten. Solche Pfade können gepatcht werden, das kann aber problematisch werden, wenn der Linker nicht genügend Speicher in dem Image-Header reserviert. Mit der Option -Gr können Sie die Anzahl der zusätzlich zu reservierenden Bytes festlegen.

Themen

Siehe auch