EnglischFranzösischSpanisch

Server ausführen | Ubuntu > | Fedora > |


OnWorks-Favicon

i686-linux-gnu-ld - Online in der Cloud

Führen Sie i686-linux-gnu-ld im kostenlosen OnWorks-Hosting-Provider über Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator aus

Dies ist der Befehl i686-linux-gnu-ld, der im kostenlosen OnWorks-Hosting-Provider mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME


ld - Der GNU-Linker

ZUSAMMENFASSUNG


ld [Optionen] Objektdatei realisieren kannst...

BESCHREIBUNG


ld kombiniert eine Reihe von Objekt- und Archivdateien, verschiebt deren Daten
und bindet Symbolreferenzen ein. Normalerweise der letzte Schritt beim Kompilieren von a
Programm soll laufen ld.

ld akzeptiert Linker Command Language-Dateien, die in einer Obermenge von geschrieben sind
Syntax der Befehlssprache des Link Editors von AT&T, um explizite und
volle Kontrolle über den Verknüpfungsprozess.

Diese Manpage beschreibt nicht die Befehlssprache; siehe die ld Eintrag
in "info" für alle Details zur Befehlssprache und zu anderen Aspekten
des GNU-Linkers.

Diese Version von ld verwendet die universellen BFD-Bibliotheken für den Betrieb
Objektdateien. Dies erlaubt ld zum Lesen, Kombinieren und Schreiben von Objektdateien
in vielen verschiedenen Formaten --- zum Beispiel COFF oder "a.out". Unterschiedlich
Formate können miteinander verknüpft werden, um jede verfügbare Art von Objekt zu erzeugen
Datei.

Abgesehen von seiner Flexibilität ist der GNU-Linker hilfreicher als andere
Linker bei der Bereitstellung diagnostischer Informationen. Viele Linker geben auf
Ausführung sofort nach Auftreten eines Fehlers; wenn möglich, ld
wird weiter ausgeführt, sodass Sie andere Fehler (oder in einigen Fällen)
Fällen, um trotz des Fehlers eine Ausgabedatei zu erhalten).

Der GNU-Linker ld soll ein breites Spektrum an Situationen abdecken und
möglichst kompatibel mit anderen Linkern sein. Als Ergebnis haben Sie
viele Möglichkeiten, sein Verhalten zu kontrollieren.

OPTIONAL


Der Linker unterstützt eine Vielzahl von Befehlszeilenoptionen, aber in Wirklichkeit
In der Praxis werden nur wenige von ihnen in einem bestimmten Kontext verwendet. Zum Beispiel,
eine häufige Verwendung von ld ist das Verknüpfen von Standard-Unix-Objektdateien auf einem
Standard, unterstütztes Unix-System. Auf einem solchen System eine Datei verknüpfen
"hallo.o":

ich tue /lib/crt0.o hallo.o -lc

Das sagt ld um eine Datei namens . zu erzeugen Ausgabe als Ergebnis der Verknüpfung
die Datei "/lib/crt0.o" mit "hello.o" und die Bibliothek "libc.a", die
wird aus den Standardsuchverzeichnissen stammen. (Siehe die Diskussion von
den -l Option unten.)

Einige der Befehlszeilenoptionen für ld kann an beliebiger Stelle in . angegeben werden
die Befehlszeile. Optionen, die sich auf Dateien beziehen, wie z -l or
-T, bewirken, dass die Datei an der Stelle gelesen wird, an der die Option erscheint
in der Befehlszeile, relativ zu den Objektdateien und anderen Dateien
Optionen. Das Wiederholen von Nicht-Datei-Optionen mit einem anderen Argument wird
haben entweder keine weiteren Auswirkungen oder überschreiben frühere Ereignisse (die
weiter links in der Befehlszeile) dieser Option. Optionen, die
mehr als einmal sinnvoll angegeben werden können im
Beschreibungen unten.

Nicht-Optionsargumente sind Objektdateien oder Archive, die
miteinander verbunden. Sie können folgen, vorausgehen oder mit eingemischt werden
Befehlszeilenoptionen, außer dass ein Objektdateiargument möglicherweise nicht
zwischen einer Option und ihrem Argument platziert.

Normalerweise wird der Linker mit mindestens einer Objektdatei aufgerufen, aber Sie
kann andere Formen von binären Eingabedateien mit . angeben -l, -RUnd der
Skript-Befehlssprache. Wenn nicht binäre Eingabedateien sind überhaupt
angegeben, erzeugt der Linker keine Ausgabe und gibt die
Nachricht Nein Eingabe Dateien.

Wenn der Linker das Format einer Objektdatei nicht erkennt, wird er
gehe davon aus, dass es sich um ein Linker-Skript handelt. Ein so spezifiziertes Skript
erweitert das für den Link verwendete Haupt-Linker-Skript (entweder das Standard-
Linker-Skript oder das mit angegebene -T). Diese Funktion erlaubt
der Linker zum Verlinken mit einer Datei, die ein Objekt oder eine Datei zu sein scheint
Archiv, sondern definiert eigentlich nur einige Symbolwerte oder verwendet
"INPUT" oder "GROUP", um andere Objekte zu laden. In diesem ein Skript angeben
way erweitert lediglich das Haupt-Linker-Skript mit den zusätzlichen Befehlen
nach dem Hauptskript platziert; benutze die -T Option zum Ersetzen der Standardeinstellung
Linker-Skript vollständig, aber beachten Sie die Wirkung des Befehls "INSERT".

Für Optionen, deren Namen aus einem einzelnen Buchstaben bestehen, müssen Optionsargumente
Folgen Sie entweder dem Optionsbuchstaben ohne dazwischen liegende Leerzeichen, oder seien Sie
als separate Argumente direkt nach der Option angegeben, die
erfordert sie.

Für Optionen, deren Namen aus mehreren Buchstaben bestehen, entweder ein Bindestrich oder zwei
kann dem Optionsnamen vorangestellt werden; zum Beispiel, -Spur-Symbol und
--trace-symbol sind gleichwertig. Hinweis --- es gibt eine Ausnahme hiervon
Regel. Mehrere Buchstabenoptionen, die mit einem kleinen 'o' beginnen, können
nur zwei Striche vorangestellt werden. Dies soll Verwechslungen mit den
-o Möglichkeit. Also zum Beispiel -magisch setzt den Namen der Ausgabedatei auf Magie
während --omagisch setzt das NMAGIC-Flag auf die Ausgabe.

Argumente für aus mehreren Buchstaben bestehende Optionen müssen entweder vom
Optionsname durch ein Gleichheitszeichen oder als separate Argumente
unmittelbar nach der Option, die sie erfordert. Zum Beispiel,
--trace-symbol foo und --trace-symbol=foo sind gleichwertig. Einzigartig
Abkürzungen der Namen von Optionen mit mehreren Buchstaben werden akzeptiert.

Hinweis --- wenn der Linker indirekt über einen Compiler-Treiber aufgerufen wird
(z.B gcc) dann sollten alle Linker-Befehlszeilenoptionen ein Präfix haben
by -WL, (oder was auch immer für den jeweiligen Compiler-Treiber geeignet ist)
so was:

gcc -Wl,--Startgruppe foo.o bar.o -Wl,--Endgruppe

Dies ist wichtig, da sonst das Compiler-Treiberprogramm möglicherweise
die Linker-Optionen stillschweigend löschen, was zu einem fehlerhaften Link führt. Verwechslung
kann auch auftreten, wenn Optionen übergeben werden, die Werte durch a . erfordern
Treiber, da die Verwendung eines Leerzeichens zwischen Option und Argument als
Trennzeichen und veranlasst den Treiber, nur die Option an den Linker zu übergeben
und das Argument an den Compiler. In diesem Fall ist es am einfachsten zu verwenden
die verbundenen Formen von ein- und mehrbuchstabigen Optionen, wie zum Beispiel:

gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map

Hier ist eine Tabelle der generischen Befehlszeilenschalter, die von der . akzeptiert werden
GNU-Linker:

@Datei
Lesen Sie die Befehlszeilenoptionen von Datei. Die gelesenen Optionen werden eingefügt
anstelle des ursprünglichen @Datei Möglichkeit. Wenn Datei existiert nicht, oder
nicht gelesen werden kann, wird die Option wörtlich behandelt und nicht
entfernt.

Optionen in Datei werden durch Leerzeichen getrennt. Ein Leerzeichen
Zeichen kann in eine Option eingeschlossen werden, indem das Ganze umschlossen wird
Option in einfachen oder doppelten Anführungszeichen. Jeder Charakter (einschließlich
ein umgekehrter Schrägstrich) kann eingefügt werden, indem dem Zeichen vorangestellt wird
mit Backslash enthalten. Die Datei kann selbst zusätzliche enthalten
@Datei Optionen; solche Optionen werden rekursiv verarbeitet.

-a Stichwort
Diese Option wird aus Gründen der HP/UX-Kompatibilität unterstützt. Die Stichwort
Argument muss einer der Strings sein Archiv, gemeinsam genutztbezeichnet, oder Standard.
-ein Archiv ist funktional äquivalent zu -Bstatisch, und die anderen beiden
Schlüsselwörter sind funktional äquivalent zu -Bdynamisch. Diese Option kann
beliebig oft verwendet werden.

--Prüfung AUDITLIB
Fügt AUDITLIB zum Eintrag "DT_AUDIT" des Dynamikbereichs.
AUDITLIB wird nicht auf Existenz geprüft und verwendet auch nicht die
DT_SONAME in der Bibliothek angegeben. Bei mehrfacher Angabe
"DT_AUDIT" enthält eine durch Doppelpunkte getrennte Liste von Audit-Schnittstellen
benutzen. Wenn der Linker ein Objekt mit einem Audit-Eintrag findet, während
Wenn Sie nach gemeinsam genutzten Bibliotheken suchen, wird ein entsprechendes hinzugefügt
Eintrag "DT_DEPAUDIT" in der Ausgabedatei. Diese Option ist nur
sinnvoll auf ELF-Plattformen, die die rtld-audit-Schnittstelle unterstützen.

-A Architektur
--architektur=Architektur
In der aktuellen Version von ld, diese Option ist nur für die
Intel 960-Architekturfamilie. Darin ld Konfiguration, die
Architektur -Argument identifiziert die jeweilige Architektur im
960-Familie, die einige Sicherheitsvorkehrungen ermöglicht und die Archiv-
Suchpfad der Bibliothek.

Zukünftige Veröffentlichungen von ld kann ähnliche Funktionen für andere unterstützen
Architekturfamilien.

-b Eingabeformat
--format=Eingabeformat
ld kann konfiguriert werden, um mehr als eine Art von Objektdatei zu unterstützen.
Wenn dein ld so konfiguriert ist, können Sie die -b Option zu
Geben Sie das Binärformat für die folgenden Eingabeobjektdateien an
Option in der Befehlszeile. Sogar wenn ld ist für die Unterstützung konfiguriert
alternative Objektformate, Sie müssen dies normalerweise nicht angeben,
as ld sollte so konfiguriert werden, dass als Standardeingabeformat die
gängigstes Format auf jeder Maschine. Eingabeformat ist eine Textzeichenfolge,
der Name eines bestimmten Formats, das von den BFD-Bibliotheken unterstützt wird.
(Sie können die verfügbaren Binärformate mit auflisten objdump -i.)

Sie können diese Option verwenden, wenn Sie Dateien mit einem
ungewöhnliches Binärformat. Sie können auch verwenden -b Formate wechseln
explizit (bei der Verknüpfung von Objektdateien unterschiedlicher Formate), durch
einschließlich -b Eingabeformat vor jeder Gruppe von Objektdateien in a
besonderes Format.

Das Standardformat wird der Umgebungsvariablen entnommen
"GNUTARGET".

Sie können das Eingabeformat auch aus einem Skript heraus definieren, indem Sie die
Befehl "ZIEL";

-c MRT-Befehlsdatei
--mri-script=MRT-Befehlsdatei
Zur Kompatibilität mit durch MRT erzeugten Linkern, ld akzeptiert Skript
Dateien, die in einer alternativen, eingeschränkten Befehlssprache geschrieben sind,
beschrieben im Abschnitt MRT-kompatible Skriptdateien von GNU ld
Dokumentation. Einführung von MRT-Skriptdateien mit der Option -c;; verwenden
den -T Option zum Ausführen von Linker-Skripten, die im Allzweck-Skript geschrieben sind
ld Skriptsprache. Wenn MRT-cmdfile ist nicht vorhanden, ld schaut nach
es in den Verzeichnissen, die von any -L Optionen.

-d
-dc
-dp Diese drei Optionen sind gleichwertig; mehrere Formulare werden unterstützt
für die Kompatibilität mit anderen Linkern. Sie weisen dem Gemeinsamen Raum zu
Symbole, auch wenn eine verschiebbare Ausgabedatei angegeben ist (mit -r).
Der Skriptbefehl "FORCE_COMMON_ALLOCATION" hat die gleiche Wirkung.

--depaudit AUDITLIB
-P AUDITLIB
Fügt AUDITLIB zum Eintrag "DT_DEPAUDIT" des dynamischen Abschnitts.
AUDITLIB wird nicht auf Existenz geprüft und verwendet auch nicht die
DT_SONAME in der Bibliothek angegeben. Bei mehrfacher Angabe
"DT_DEPAUDIT" enthält eine durch Doppelpunkte getrennte Liste der Audits
Schnittstellen zu verwenden. Diese Option ist nur auf ELF-Plattformen sinnvoll
Unterstützung der rtld-audit-Schnittstelle. Die Option -P ist vorgesehen für
Solaris-Kompatibilität.

-e Eintrag
--Eintrag=Eintrag
Verwenden Sie unsere Größentabelle, um die Rasse und das Gewicht Ihres Hundes einer der XNUMX verfügbaren Bettgrößen zuzuordnen. Wenn Sie Fragen zur Größe Ihres Hundes haben, können Sie sich gerne mit uns in Verbindung setzen. Eintrag als explizites Symbol für den Beginn der Ausführung Ihres
Programm anstelle des standardmäßigen Einstiegspunkts. Wenn es keine gibt
Symbol namens Eintrag, wird der Linker versuchen zu parsen Eintrag als Zahl,
und verwenden Sie diese als Eingangsadresse (die Nummer wird interpretiert
in Basis 10; du darfst ein führendes verwenden 0x für Basis 16 oder eine führende 0
für Basis 8).

--exclude-libs lib,lib, ...
Gibt eine Liste von Archivbibliotheken an, aus denen Symbole nicht
automatisch exportiert werden. Die Bibliotheksnamen können durch
Kommas oder Doppelpunkte. Die Angabe von "--exclude-libs ALL" schließt Symbole aus
in allen Archivbibliotheken vom automatischen Export. Diese Option ist
nur für den i386 PE-Targeting-Port des Linkers verfügbar und für
ELF gezielte Ports. Für i386 PE, explizit aufgeführte Symbole in a
.def-Datei werden unabhängig von dieser Option weiterhin exportiert. Für ELF
gezielte Ports, Symbole, die von dieser Option betroffen sind, werden behandelt als
versteckt.

--exclude-modules-for-implib Modul,Modul, ...
Gibt eine Liste von Objektdateien oder Archivelementen an, aus der
Symbole sollen nicht automatisch exportiert werden, aber welche sollten
en gros in die Importbibliothek kopiert, die während der
Verknüpfung. Die Modulnamen können durch Kommas oder Doppelpunkte getrennt werden und
muss genau mit den Dateinamen übereinstimmen, die von . verwendet werden ld um die Dateien zu öffnen; zum
Archivmitglieder, dies ist einfach der Mitgliedsname, aber für Objekt
Dateien, deren Name aufgeführt ist, muss einen beliebigen Pfad enthalten und genau übereinstimmen
Wird verwendet, um die Eingabedatei in der Befehlszeile des Linkers anzugeben. Dies
Option ist nur für den i386 PE-Targeting-Port des
Linker. Symbole, die explizit in einer .def-Datei aufgeführt sind, sind weiterhin
exportiert, unabhängig von dieser Option.

-E
--export-dynamisch
--no-export-dynamisch
Beim Erstellen einer dynamisch verknüpften ausführbaren Datei mit dem -E Option
oder im --export-dynamisch Option bewirkt, dass der Linker alle Symbole hinzufügt
zur dynamischen Symboltabelle. Die dynamische Symboltabelle ist die Menge
von Symbolen, die von dynamischen Objekten zur Laufzeit sichtbar sind.

Wenn Sie keine dieser Optionen verwenden (oder die
--no-export-dynamisch Option zum Wiederherstellen des Standardverhaltens), die
dynamische Symboltabelle enthält normalerweise nur die Symbole, die
werden von einem im Link erwähnten dynamischen Objekt referenziert.

Wenn Sie "dlopen" verwenden, um ein dynamisches Objekt zu laden, das verweisen muss
zurück zu den vom Programm definierten Symbolen und nicht zu anderen
dynamisches Objekt, dann müssen Sie diese Option wahrscheinlich verwenden, wenn
das Programm selbst verlinken.

Sie können auch die dynamische Liste verwenden, um zu steuern, welche Symbole sein sollen
der dynamischen Symboltabelle hinzugefügt, wenn das Ausgabeformat dies unterstützt.
Siehe die Beschreibung von --dynamische-Liste.

Beachten Sie, dass diese Option spezifisch für ELF-Zielports ist. SPORT
Ziele unterstützen eine ähnliche Funktion zum Exportieren aller Symbole aus einer DLL
oder EXE; siehe die Beschreibung von --export-alle-symbole Siehe unten.

-EB Verknüpfen Sie Big-Endian-Objekte. Dies betrifft das Standardausgabeformat.

-DER Verknüpfen Sie Little-Endian-Objekte. Dies betrifft die Standardausgabe
Format.

-f Name
--Hilfs=Name
Legen Sie beim Erstellen eines gemeinsam genutzten ELF-Objekts den internen DT_AUXILIARY . fest
Feld auf den angegebenen Namen. Dies teilt dem dynamischen Linker mit, dass
die Symboltabelle des Shared Object sollte als
Hilfsfilter auf der Symboltabelle des Shared Object Name.

Wenn Sie später ein Programm mit diesem Filterobjekt verknüpfen, dann, wenn
Wenn Sie das Programm ausführen, sieht der dynamische Linker das DT_AUXILIARY
Gebiet. Wenn der dynamische Linker Symbole aus dem Filter auflöst
Objekt, prüft es zunächst, ob es eine Definition in der
gemeinsames Objekt Name. Wenn es eines gibt, wird es anstelle von verwendet
die Definition im Filterobjekt. Das gemeinsame Objekt Name brauchen
nicht existieren. Also das gemeinsame Objekt Name kann verwendet werden, um eine
alternative Implementierung bestimmter Funktionen, vielleicht für
Debugging oder für maschinenspezifische Leistung.

Diese Option kann mehrmals angegeben werden. Der DT_AUXILIARY
Einträge werden in der Reihenfolge erstellt, in der sie auf dem . erscheinen
Befehlszeile.

-F Name
--filter=Name
Legen Sie beim Erstellen eines gemeinsam genutzten ELF-Objekts den internen DT_FILTER . fest
Feld auf den angegebenen Namen. Dies teilt dem dynamischen Linker mit, dass
die Symboltabelle des zu erstellenden Shared Objects sollte
als Filter auf der Symboltabelle des Shared Object verwendet werden Name.

Wenn Sie später ein Programm mit diesem Filterobjekt verknüpfen, dann, wenn
Wenn Sie das Programm ausführen, sieht der dynamische Linker den DT_FILTER
Gebiet. Der dynamische Linker löst Symbole entsprechend der
Symboltabelle des Filterobjekts wie gewohnt, wird aber tatsächlich
Link zu den Definitionen im freigegebenen Objekt Name. Und so kam es dass der
Filterobjekt kann verwendet werden, um eine Teilmenge der Symbole auszuwählen
vom Objekt bereitgestellt Name.

Einige ältere Linker verwendeten die -F Option während einer Zusammenstellung
Toolchain zum Festlegen des Objektdateiformats für Eingabe und
Objektdateien ausgeben. Der GNU-Linker verwendet dafür andere Mechanismen
Zweck: die -b, --Format, --oformat Optionen, der Befehl "ZIEL"
in Linker-Skripten und die Umgebungsvariable "GNUTARGET". Die
GNU-Linker ignoriert die -F Option, wenn kein ELF erstellt wird
gemeinsames Objekt.

-fini=Name
Rufen Sie beim Erstellen einer ausführbaren ELF-Datei oder eines freigegebenen Objekts NAME auf, wenn
das ausführbare oder gemeinsam genutzte Objekt wird entladen, indem DT_FINI auf . gesetzt wird
die Adresse der Funktion. Standardmäßig verwendet der Linker "_fini"
als die aufzurufende Funktion.

-g Ignoriert. Zur Kompatibilität mit anderen Tools bereitgestellt.

-G Wert
--gpsize=Wert
Stellen Sie die maximale Größe der zu optimierenden Objekte mit dem GP . ein
registrieren bei Größe. Dies ist nur für Objektdateiformate sinnvoll
wie MIPS ELF, die das Einbringen von großen und kleinen Objekten unterstützen
verschiedene Abschnitte. Dies wird für andere Objektdateiformate ignoriert.

-h Name
-soname=Name
Legen Sie beim Erstellen eines gemeinsam genutzten ELF-Objekts den internen DT_SONAME . fest
Feld auf den angegebenen Namen. Wenn eine ausführbare Datei mit a verknüpft ist
Shared Object, das ein DT_SONAME-Feld hat, dann, wenn die ausführbare Datei
ausgeführt wird, versucht der dynamische Linker, das gemeinsam genutzte Objekt zu laden
wird durch das DT_SONAME-Feld angegeben, anstatt die Datei zu verwenden
Name des Linkers.

-i Führen Sie einen inkrementellen Link durch (wie Option -r).

-init=Name
Rufen Sie beim Erstellen einer ausführbaren ELF-Datei oder eines freigegebenen Objekts NAME auf, wenn
das ausführbare oder gemeinsam genutzte Objekt wird geladen, indem DT_INIT auf . gesetzt wird
die Adresse der Funktion. Standardmäßig verwendet der Linker "_init"
als die aufzurufende Funktion.

-l Namensspezifikation
--Bibliothek=Namensspezifikation
Fügen Sie die durch . angegebene Archiv- oder Objektdatei hinzu Namensspezifikation zur Liste von
Dateien zu verlinken. Diese Option kann beliebig oft verwendet werden. Wenn
Namensspezifikation ist von der Form :Dateiname, ld wird den Bibliothekspfad durchsuchen
für eine Datei namens Dateinamen, andernfalls wird die Bibliothek durchsucht
Pfad für eine Datei namens libnamespec.a.

Auf Systemen, die gemeinsam genutzte Bibliotheken unterstützen, ld kann auch suchen nach
andere Dateien als libnamespec.a. Insbesondere auf ELF und SunOS
Systeme, ld durchsucht ein Verzeichnis nach einer Bibliothek namens
libnamespec.so bevor Sie nach einem Namen suchen libnamespec.a. (Von
Konvention weist eine ".so"-Erweiterung auf eine gemeinsam genutzte Bibliothek hin.) Hinweis
dass dieses Verhalten nicht gilt für :Dateiname, was immer
spezifiziert eine Datei namens Dateinamen.

Der Linker durchsucht ein Archiv nur einmal an der Stelle, an der
es wird in der Befehlszeile angegeben. Wenn das Archiv a . definiert
Symbol, das in einem Objekt, das vor dem auftauchte, undefiniert war
Archiv auf der Befehlszeile, der Linker enthält die
entsprechende Datei(en) aus dem Archiv. Jedoch ein undefiniertes Symbol
in einem Objekt, das später auf der Befehlszeile erscheint, führt nicht zu dem
linker, um das Archiv erneut zu durchsuchen.

Siehe die -( Option für eine Möglichkeit, den Linker zu zwingen, Archive zu durchsuchen
mehrmals.

Sie können dasselbe Archiv mehrmals in der Befehlszeile auflisten.

Diese Art der Archivsuche ist Standard für Unix-Linker.
Wenn Sie jedoch verwenden ld Beachten Sie unter AIX, dass es sich von unterscheidet
das Verhalten des AIX-Linkers.

-L Suchverzeichnis
--Bibliothekspfad=Suchverzeichnis
Pfad hinzufügen Suchverzeichnis zur Liste der Pfade, die ld werde suchen
Archivbibliotheken und ld Skripte steuern. Sie können diese Option verwenden
beliebig oft. Die Verzeichnisse werden in der Reihenfolge in . durchsucht
die sie in der Befehlszeile angeben. Verzeichnisse
die in der Befehlszeile angegeben sind, werden vor der Standardeinstellung gesucht
Verzeichnisse. Alle -L Optionen gelten für alle -l Optionen, unabhängig davon
die Reihenfolge, in der die Optionen angezeigt werden. -L Optionen haben keinen Einfluss
wie ld sucht nach einem Linker-Skript, es sei denn -T Option ist angegeben.

If Suchverzeichnis beginnt mit "=", dann wird das "=" durch das . ersetzt
Sysroot Präfix, gesteuert von der --sysroot Option oder angegeben
wenn der Linker konfiguriert ist.

Der Standardsatz der durchsuchten Pfade (ohne mit angegeben zu werden) -L)
hängt davon ab, welcher Emulationsmodus ld verwendet, und in einigen Fällen auch
wie es konfiguriert wurde.

Die Pfade können auch in einem Link-Skript mit dem
Befehl "SEARCH_DIR". Auf diese Weise angegebene Verzeichnisse werden durchsucht
an der Stelle, an der das Linker-Skript im Befehl erscheint
Linie.

-m Emulation
Emulieren Sie die Emulation Linker. Sie können die verfügbaren auflisten
Emulationen mit dem - ausführlich or -V Optionen.

Wenn die -m Option nicht verwendet, wird die Emulation aus dem
Umgebungsvariable "LDEMULATION", falls definiert.

Andernfalls hängt die Standardemulation davon ab, wie der Linker war
konfiguriert.

-M
--Karte drucken
Drucken Sie eine Link-Map in die Standardausgabe. Eine Link-Map bietet
Informationen über den Link, einschließlich der folgenden:

· Wo Objektdateien in den Speicher abgebildet werden.

· Wie gängige Symbole zugewiesen werden.

· Alle im Link enthaltenen Archivmitglieder mit Erwähnung der
Symbol, das das Einbringen des Archivmitglieds veranlasste.

· Die den Symbolen zugewiesenen Werte.

Hinweis - Symbole, deren Werte durch einen Ausdruck berechnet werden, der
beinhaltet einen Verweis auf einen früheren Wert des gleichen Symbols kann
kein korrektes Ergebnis in der Link-Map angezeigt. Das ist
weil der Linker Zwischenergebnisse verwirft und nur
behält den Endwert eines Ausdrucks bei. Unter solchen
Umständen zeigt der Linker den eingeschlossenen Endwert an
durch eckige Klammern. So zum Beispiel ein Linker-Skript
enthält:

foo = 1
foo = foo * 4
foo = foo + 8

erzeugt die folgende Ausgabe in der Link-Map, wenn die -M
Option wird verwendet:

0x00000001 foo = 0x1
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)

[VORLÄUFIGE VOLLAUTOMATISCHE TEXTÜBERSETZUNG - muss noch überarbeitet werden. Wir bitten um Ihr Verständnis.] Für eine detailliertere Anleitung gehen Sie bitte auf: Ausdrücke für weitere Informationen zu Ausdrücken in
Linker-Skripte.

-n
--nmagie
Deaktivieren Sie die Seitenausrichtung von Abschnitten und deaktivieren Sie die Verlinkung gegen
gemeinsam genutzte Bibliotheken. Wenn das Ausgabeformat Magie im Unix-Stil unterstützt
Zahlen, markieren Sie die Ausgabe als "NMAGIC".

-N
--omagisch
Stellen Sie die Text- und Datenabschnitte so ein, dass sie lesbar und beschreibbar sind. Ebenfalls,
Richten Sie das Datensegment nicht an der Seite aus und deaktivieren Sie die Verlinkung gegen
gemeinsam genutzte Bibliotheken. Wenn das Ausgabeformat Magie im Unix-Stil unterstützt
Zahlen, markieren Sie die Ausgabe als "OMAGIC". Hinweis: Obwohl ein beschreibbares
Textabschnitt ist für PE-COFF-Ziele erlaubt, er entspricht nicht
die von Microsoft veröffentlichte Formatspezifikation.

--no-magic
Diese Option negiert die meisten Auswirkungen der -N Möglichkeit. Es setzt
den Textabschnitt schreibgeschützt und zwingt das Datensegment,
Seite ausgerichtet. Hinweis - diese Option aktiviert nicht die Verknüpfung mit
gemeinsam genutzte Bibliotheken. Verwenden -Bdynamisch dafür.

-o Ausgabe
--ausgabe=Ausgabe
Verwenden Sie unsere Größentabelle, um die Rasse und das Gewicht Ihres Hundes einer der XNUMX verfügbaren Bettgrößen zuzuordnen. Wenn Sie Fragen zur Größe Ihres Hundes haben, können Sie sich gerne mit uns in Verbindung setzen. Ausgabe als Name für das von . produzierte Programm ld; wenn das
Option nicht angegeben, der Name a.aus wird standardmäßig verwendet. Die
Der Skriptbefehl "OUTPUT" kann auch den Namen der Ausgabedatei angeben.

-O Ebene
If Ebene ist ein numerischer Wert größer als Null ld optimiert die
Ausgang. Dies kann deutlich länger dauern und daher
sollte wahrscheinlich nur für die endgültige Binärdatei aktiviert werden. Bei der
Momentan betrifft diese Option nur die Generierung von gemeinsam genutzten ELF-Bibliotheken.
Zukünftige Releases des Linkers können diese Option stärker nutzen.
Auch gibt es derzeit keinen Unterschied im Verhalten des Linkers für
verschiedene Nicht-Null-Werte dieser Option. Das kann sich wieder ändern
mit zukünftigen Veröffentlichungen.

--push-state
Das --push-state ermöglicht es, den aktuellen Status der Flaggen beizubehalten
die die Handhabung der Eingabedatei regeln, damit sie alle
restauriert mit einem entsprechenden --Pop-Zustand .

Die abgedeckten Optionen sind: -Bdynamisch, -Bstatisch, -dn, -dy,
-call_shared, -non_shared, -statisch, -N, -n, - Ganzes Archiv,
--no-whole-archiv, -r, -Ur, --copy-dt-benötigt-Einträge,
--no-copy-dt-benötigt-Einträge, --wie benötigt, --no-as-benedund -a.

Ein Ziel für diese Option sind Spezifikationen für pkg-config. Wenn
verwendet mit dem --libs Option sind alle eventuell benötigten Bibliotheken
aufgelistet und dann evtl. mit allen mal verlinkt. Es ist besser zu
etwas wie folgt zurückgeben:

-Wl,--push-state,--nach Bedarf -libone -libtwo -Wl,--pop-state

Macht den Effekt von --push-state rückgängig, stellt die vorherigen Werte von . wieder her
die Flags, die die Handhabung der Eingabedatei regeln.

-q
--emit-relocs
Belassen Sie Relocation-Abschnitte und -Inhalte in vollständig verknüpften ausführbaren Dateien.
Tools zur Analyse und Optimierung von Post-Links benötigen diese Informationen möglicherweise.
um korrekte Änderungen an ausführbaren Dateien durchzuführen. Dies
führt zu größeren ausführbaren Dateien.

Diese Option wird derzeit nur auf ELF-Plattformen unterstützt.

--force-dynamisch
Erzwingen Sie, dass die Ausgabedatei dynamische Abschnitte enthält. Diese Option ist
spezifisch für VxWorks-Ziele.

-r
--versetzbar
Verschiebbare Ausgabe generieren---dh eine Ausgabedatei generieren, die
kann wiederum als Input für dienen ld. Das wird oft genannt Teil-
Linking. Als Nebeneffekt in Umgebungen, die Standard unterstützen
Unix Magic Numbers, diese Option legt auch die Magie der Ausgabedatei fest
Nummer auf "OMAGIC". Wenn diese Option nicht angegeben ist, wird ein absolutes
Datei erzeugt wird. Beim Verknüpfen von C++-Programmen ist diese Option werden nicht
Verweise auf Konstruktoren auflösen; Verwenden Sie dazu -Ur.

Wenn eine Eingabedatei nicht das gleiche Format wie die Ausgabe hat
Datei wird teilweises Verknüpfen nur unterstützt, wenn diese Eingabedatei dies nicht tut
eventuelle Umzüge enthalten. Verschiedene Ausgabeformate können weitere
Einschränkungen; zum Beispiel werden einige "a.out"-basierte Formate nicht unterstützt
teilweise Verknüpfung mit Eingabedateien in anderen Formaten überhaupt.

Diese Option bewirkt dasselbe wie -i.

-R Dateinamen
--just-symbols=Dateinamen
Lesen Sie Symbolnamen und deren Adressen aus Dateinamen, aber mach nicht
verschieben oder in die Ausgabe aufnehmen. Dies ermöglicht Ihre Ausgabe
Datei, um symbolisch auf absolute Speicherorte zu verweisen, die definiert sind
in anderen Programmen. Sie können diese Option mehrmals verwenden.

Zur Kompatibilität mit anderen ELF-Linkern, wenn die -R Option ist
gefolgt von einem Verzeichnisnamen anstelle eines Dateinamens, es ist
behandelt als die -Pfad .

-s
--strip-all
Lassen Sie alle Symbolinformationen aus der Ausgabedatei weg.

-S
--strip-debug
Lassen Sie Debugger-Symbolinformationen (aber nicht alle Symbole) aus dem
Ausgabedatei.

-t
--verfolgen
Drucken Sie die Namen der Eingabedateien als ld verarbeitet sie.

-T Skriptdatei
--script=Skriptdatei
Verwenden Sie unsere Größentabelle, um die Rasse und das Gewicht Ihres Hundes einer der XNUMX verfügbaren Bettgrößen zuzuordnen. Wenn Sie Fragen zur Größe Ihres Hundes haben, können Sie sich gerne mit uns in Verbindung setzen. Skriptdatei als Linker-Skript. Dieses Skript ersetzt ld's
Standard-Linker-Skript (anstatt es hinzuzufügen), also Befehlsdatei
muss alles Notwendige angeben, um die Ausgabedatei zu beschreiben.
If Skriptdatei existiert nicht im aktuellen Verzeichnis, "ld" sieht aus
dafür in den Verzeichnissen, die von einem der vorhergehenden angegeben sind -L Optionen.
Mehrere -T Optionen akkumulieren.

-dT Skriptdatei
--default-script=Skriptdatei
Verwenden Sie unsere Größentabelle, um die Rasse und das Gewicht Ihres Hundes einer der XNUMX verfügbaren Bettgrößen zuzuordnen. Wenn Sie Fragen zur Größe Ihres Hundes haben, können Sie sich gerne mit uns in Verbindung setzen. Skriptdatei als Standard-Linker-Skript.

Diese Option ähnelt der --Skript Option außer das
Die Verarbeitung des Skripts verzögert sich bis nach dem Rest der
Befehlszeile verarbeitet wurde. Dies ermöglicht Optionen, die nach
den --default-script Option in der Befehlszeile, um die
Verhalten des Linker-Skripts, das wichtig sein kann, wenn die
Linker-Befehlszeile kann nicht direkt vom Benutzer gesteuert werden. (z.B
weil die Befehlszeile von einem anderen Tool erstellt wird, z
as gcc).

-u Symbol
--undefiniert=Symbol
Zwingen Symbol als undefiniert in die Ausgabedatei einzutragen
Symbol. Dadurch kann beispielsweise die Verknüpfung weiterer
Module aus Standardbibliotheken. -u kann mit unterschiedlichen wiederholt werden
Optionsargumente, um zusätzliche undefinierte Symbole einzugeben. Dies
Option entspricht dem Linker-Skriptbefehl "EXTERN".

Wenn diese Option verwendet wird, um zu erzwingen, dass zusätzliche Module
in den Link gezogen, und wenn es ein Fehler für das Symbol ist, zu
undefiniert bleiben, dann die Option --erforderlich definiert sollte benutzt werden
stattdessen.

--require-defined=Symbol
Verlange das Symbol ist in der Ausgabedatei definiert. Diese Option ist
das gleiche wie Option --nicht definiert außer dass wenn Symbol ist nicht definiert
in der Ausgabedatei gibt der Linker einen Fehler aus und wird beendet.
Der gleiche Effekt kann in einem Linker-Skript erzielt werden, indem man
"EXTERN", "ASSERT" und "DEFINED" zusammen. Diese Option kann verwendet werden
mehrmals, um zusätzliche Symbole zu erfordern.

-Ur Für alles andere als C++-Programme ist diese Option äquivalent zu
-r: Es erzeugt eine verschiebbare Ausgabe --- dh eine Ausgabedatei, die
dienen wiederum als Input für ld. Beim Verknüpfen von C++-Programmen -Ur benötigen
Referenzen auf Konstruktoren auflösen, im Gegensatz zu -r. Es funktioniert nicht
unsere Website benutzen, -Ur auf Dateien, die selbst verlinkt wurden -Ur; einmal die
Konstruktortabelle erstellt wurde, kann sie nicht hinzugefügt werden. Verwenden -Ur
nur für den letzten Teillink, und -r für die anderen.

--orphan-handling=MODE
Steuern Sie, wie verwaiste Abschnitte behandelt werden. Eine verwaiste Abteilung ist eine
in einem Linker-Skript nicht ausdrücklich erwähnt.

MODE kann einen der folgenden Werte haben:

"Platz"
Verwaiste Abschnitte werden in einem geeigneten Ausgabeabschnitt platziert
nach der in beschriebenen Strategie Waise Abschnittedem „Vermischten Geschmack“. Seine
Option --einzigartig wirkt sich auch darauf aus, wie Abschnitte platziert werden.

"verwerfen"
Alle verwaisten Abschnitte werden verworfen, indem Sie sie in die
/VERWERFEN/ Abschnitt.

"warnen"
Der Linker platziert den verwaisten Abschnitt wie bei "place" und
auch eine Warnung ausgeben.

"Error"
Der Linker wird mit einem Fehler beendet, wenn ein verwaister Abschnitt
gefunden.

Die Standardeinstellung, wenn --verwaiste Behandlung nicht angegeben ist "Ort".

--einzigartig[=SEKTION]
Erstellt einen separaten Ausgabebereich für jeden passenden Eingabebereich
SEKTION, oder wenn der optionale Platzhalter SEKTION Argument fehlt,
für jeden verwaisten Eingabeabschnitt. Ein verwaister Abschnitt ist einer nicht
in einem Linker-Skript ausdrücklich erwähnt. Sie können diese Option verwenden
mehrmals auf der Befehlszeile; Es verhindert das normale Zusammenführen
von Eingabeabschnitten mit gleichem Namen, Ausgabeabschnitt überschreiben
Zuweisungen in einem Linker-Skript.

-v
--Version
-V Anzeige der Versionsnummer für lddem „Vermischten Geschmack“. Seine -V Option listet auch die
unterstützte Emulationen.

-x
--discard-all
Löschen Sie alle lokalen Symbole.

-X
--discard-locals
Löschen Sie alle temporären lokalen Symbole. (Diese Symbole beginnen mit
systemspezifische lokale Label-Präfixe, normalerweise .L für ELF-Systeme
or L für traditionelle a.out-Systeme.)

-y Symbol
--trace-symbol =Symbol
Drucken Sie den Namen jeder verknüpften Datei, in der Symbol erscheint. Dies
Option kann beliebig oft angegeben werden. Auf vielen Systemen ist es
notwendig, um einen Unterstrich voranzustellen.

Diese Option ist nützlich, wenn Sie ein undefiniertes Symbol in Ihrem
Link, weiß aber nicht woher der Hinweis kommt.

-Y Weg
Verwenden Sie Weg zum Standardsuchpfad für Bibliotheken. Diese Option ist vorhanden
für Solaris-Kompatibilität.

-z Stichwort
Die anerkannten Schlüsselwörter sind:

Kombinieren
Kombiniert mehrere Reloc-Abschnitte und sortiert sie dynamisch
Symbol-Lookup-Caching möglich.

defs
Verbietet undefinierte Symbole in Objektdateien. Undefinierte Symbole
in Shared Libraries sind weiterhin erlaubt.

Ausführungsstapel
Markiert das Objekt als ausführbaren Stack erfordernd.

globale
Diese Option ist nur beim Erstellen eines gemeinsamen Objekts sinnvoll.
Es macht die durch dieses Shared Object definierten Symbole verfügbar
zur Symbolauflösung von nachgeladenen Bibliotheken.

initzuerst
Diese Option ist nur beim Erstellen eines gemeinsamen Objekts sinnvoll.
Es markiert das Objekt, damit seine Laufzeitinitialisierung
treten vor der Laufzeitinitialisierung anderer Objekte auf
gleichzeitig in den Prozess eingebracht. Ähnlich die
Laufzeitfinalisierung des Objekts erfolgt nach der Laufzeit
Fertigstellung aller anderen Objekte.

dazwischenlegen
Markiert das Objekt, das seine Symboltabelle vor allen einfügt
Symbole, sondern die primäre ausführbare Datei.

faul
Wenn Sie eine ausführbare oder gemeinsam genutzte Bibliothek generieren, markieren Sie sie als
weisen Sie den dynamischen Linker an, die Auflösung des Funktionsaufrufs auf zu verschieben
der Punkt, an dem die Funktion aufgerufen wird (Lazy Binding), eher
als zur Ladezeit. Lazy Binding ist die Standardeinstellung.

Ladefltr
Markiert das Objekt, bei dem seine Filter sofort verarbeitet werden
Laufzeit.

Muldefs
Ermöglicht mehrere Definitionen.

nocombreloc
Deaktiviert die Kombination mehrerer Reloc-Abschnitte.

nocopyreloc
Deaktivieren Sie vom Linker generierte .dynbss-Variablen, die anstelle von verwendet werden
Variablen, die in gemeinsam genutzten Bibliotheken definiert sind. Kann zu Dynamik führen
Textverschiebungen.

nodefaultlib
Markiert das Objekt, das nach Abhängigkeiten von diesem gesucht wird
-Objekt ignoriert alle Standardsuchpfade für Bibliotheken.

Knotenpunkt
Markiert, dass das Objekt zur Laufzeit nicht entladen werden soll.

nodloffen
Markiert das Objekt nicht für "dlopen" verfügbar.

nodump
Markiert, dass das Objekt nicht mit "dldump" gedumpt werden kann.

keinexecstack
Markiert das Objekt als nicht ausführbaren Stack erfordernd.

Text
Behandeln Sie DT_TEXTREL im Shared Object als Fehler.

kein Text
Behandeln Sie DT_TEXTREL in gemeinsam genutzten Objekten nicht als Fehler.

SMS
Behandeln Sie DT_TEXTREL in gemeinsam genutzten Objekten nicht als Fehler.

norelro
Erstellen Sie keinen ELF-Segmentheader "PT_GNU_RELRO" im
Objekt.

jetzt Wenn Sie eine ausführbare oder gemeinsam genutzte Bibliothek generieren, markieren Sie sie als
Sagen Sie dem dynamischen Linker, dass er alle Symbole auflösen soll, wenn das Programm
gestartet wird oder wenn die gemeinsam genutzte Bibliothek mit verknüpft ist
dlopen, anstatt die Auflösung des Funktionsaufrufs auf die
Punkt, an dem die Funktion zum ersten Mal aufgerufen wird.

Herkunft
Markiert, dass das Objekt $ORIGIN enthalten kann.

relro
Legen Sie im Objekt einen ELF-Segmentkopf "PT_GNU_RELRO" an.

max-page-size=Wert
Setzen Sie die maximale Seitengröße der Emulation auf Wert.

gemeinsame-seitengröße=Wert
Stellen Sie die allgemeine Seitengröße der Emulation auf ein Wert.

Stapelgröße=Wert
Geben Sie eine Stapelgröße für in einem ELF-Segment "PT_GNU_STACK" an.
Die Angabe von Null überschreibt alle Standardgrößen ungleich Null
Segmenterstellung "PT_GNU_STACK".

Bundplt
In PLT-Einträgen immer BND-Präfix generieren. Unterstützt für
Linux/x86_64.

keineextern-geschützten-daten
Behandeln Sie geschützte Datensymbole beim Erstellen nicht als extern
gemeinsame Bibliothek. Diese Option überschreibt die Back-End-Standardeinstellung des Linkers.
Es kann verwendet werden, um falsche Verlagerungen gegen . zu umgehen
vom Compiler erzeugte geschützte Datensymbole. Updates auf
geschützte Datensymbole eines anderen Moduls sind für das
resultierende gemeinsame Bibliothek. Unterstützt für i386 und x86-64.

call-nop=prefix-adr
Anruf-nop=Präfix-nop
call-nop=suffix-nop
call-nop=präfix-Byte
call-nop=suffix-Byte
Geben Sie das 1-Byte-"NOP"-Padding an, wenn Sie indirektes Transformieren
Aufruf einer lokal definierten Funktion, foo, über ihren GOT-Slot.
call-nop=prefix-adr erzeugt "0x67 call foo".
Anruf-nop=Präfix-nop erzeugt "0x90 call foo".
call-nop=suffix-nop erzeugt "call foo 0x90".
call-nop=präfix-Byte erzeugt "Byte rufen Sie Zoe an foo".
call-nop=suffix-Byte erzeugt "call foo ." Byte". Unterstützt für
i386 und x86_64.

Andere Schlüsselwörter werden aus Gründen der Solaris-Kompatibilität ignoriert.

-( Archiv -)
--startgruppe Archiv --Endgruppe
Das Archiv sollte eine Liste von Archivdateien sein. Sie können entweder sein
explizite Dateinamen oder -l Optionen.

Die angegebenen Archive werden wiederholt durchsucht, bis keine neuen mehr vorhanden sind
undefinierte Referenzen werden erstellt. Normalerweise wird ein Archiv durchsucht
nur einmal in der Reihenfolge, in der es in der Befehlszeile angegeben ist.
Wenn ein Symbol in diesem Archiv benötigt wird, um ein undefiniertes
Symbol, auf das ein Objekt in einem später erscheinenden Archiv verweist
die Befehlszeile, der Linker könnte das nicht auflösen
Hinweis. Durch die Gruppierung der Archive werden sie alle durchsucht
wiederholt, bis alle möglichen Referenzen aufgelöst sind.

Die Verwendung dieser Option ist mit erheblichen Leistungskosten verbunden. Es ist das beste
nur zu verwenden, wenn unvermeidliche Zirkelbezüge vorhanden sind
zwischen zwei oder mehr Archiven.

--accept-unknown-input-arch
--no-accept-unknown-input-arch
Weist den Linker an, Eingabedateien zu akzeptieren, deren Architektur nicht sein kann
anerkannt. Die Annahme ist, dass der Benutzer weiß, was er ist
tun und bewusst diese unbekannten Eingabedateien einbinden möchte.
Dies war das Standardverhalten des Linkers vor Release 2.14.
Das Standardverhalten ab Release 2.14 ist das Ablehnen solcher
Eingabedateien, und so die --accept-unknown-input-arch Option war
hinzugefügt, um das alte Verhalten wiederherzustellen.

--wie benötigt
--no-as-bened
Diese Option betrifft ELF DT_NEEDED-Tags für dynamische Bibliotheken
in der Befehlszeile nach dem erwähnt --wie benötigt .
Normalerweise fügt der Linker für jede Dynamik ein DT_NEEDED-Tag hinzu
Bibliothek in der Befehlszeile erwähnt, unabhängig davon, ob die
Bibliothek tatsächlich benötigt wird oder nicht. --wie benötigt verursacht ein DT_NEEDED
Tag nur für eine Bibliothek ausgegeben werden, die at zur Verbesserung der Gesundheitsgerechtigkeit Punkt in den Link
erfüllt eine nicht schwache undefinierte Symbolreferenz von einem regulären
Objektdatei oder, wenn die Bibliothek nicht in den DT_NEEDED-Listen gefunden wird
anderer benötigter Bibliotheken, eine nicht schwache undefinierte Symbolreferenz
aus einer anderen benötigten dynamischen Bibliothek. Objektdateien oder Bibliotheken
auf der Kommandozeile erscheinen nach die betreffende Bibliothek nicht
beeinflussen, ob die Bibliothek als benötigt angesehen wird. Dies ist ähnlich wie
die Regeln für die Extraktion von Objektdateien aus Archiven.
--no-as-bened stellt das Standardverhalten wieder her.

--add-benötigt
--no-add-benötigt
Diese beiden Optionen wurden aufgrund der Ähnlichkeit von eingestellt
ihre Namen an die --wie benötigt und --no-as-bened Optionen. Sie
wurden ersetzt durch --copy-dt-benötigt-Einträge und
--no-copy-dt-benötigt-Einträge.

-behaupten Stichwort
Diese Option wird aus Gründen der SunOS-Kompatibilität ignoriert.

-Bdynamisch
-dy
-call_shared
Link gegen dynamische Bibliotheken. Das ist nur sinnvoll auf
Plattformen, für die gemeinsam genutzte Bibliotheken unterstützt werden. Diese Option ist
normalerweise die Standardeinstellung auf solchen Plattformen. Die verschiedenen Varianten von
Diese Option dient der Kompatibilität mit verschiedenen Systemen. Du darfst
Verwenden Sie diese Option mehrmals in der Befehlszeile: Sie betrifft
Bibliothek sucht nach -l Optionen, die darauf folgen.

-Bgruppe
Setzen Sie das Flag "DF_1_GROUP" im Eintrag "DT_FLAGS_1" in der Dynamik
Sektion. Dies führt dazu, dass der Laufzeit-Linker Lookups in diesem verarbeitet
-Objekt und dessen Abhängigkeiten nur innerhalb der Gruppe ausgeführt werden.
--unresolved-symbols=alles melden ist impliziert. Diese Option ist nur
sinnvoll auf ELF-Plattformen, die gemeinsam genutzte Bibliotheken unterstützen.

-Bstatisch
-dn
-non_shared
-statisch
Verlinken Sie nicht gegen gemeinsam genutzte Bibliotheken. Das ist nur sinnvoll auf
Plattformen, für die gemeinsam genutzte Bibliotheken unterstützt werden. Der Unterschied
Varianten dieser Option dienen der Kompatibilität mit verschiedenen Systemen.
Sie können diese Option mehrmals in der Befehlszeile verwenden: it
wirkt sich auf die Bibliothekssuche aus -l Optionen, die darauf folgen. Dies
Option impliziert auch --unresolved-symbols=alles melden. Diese Option
kann mit verwendet werden -geteilt. Dies bedeutet, dass eine gemeinsam genutzte Bibliothek
erstellt werden, aber alle externen Referenzen der Bibliothek
müssen durch Einziehen von Einträgen aus statischen Bibliotheken aufgelöst werden.

-Bsymbolisch
Binden Sie beim Erstellen einer gemeinsam genutzten Bibliothek Verweise an globale Symbole
zur Definition in der gemeinsam genutzten Bibliothek, falls vorhanden. Normalerweise ist es
ist es möglich, dass ein Programm, das mit einer gemeinsam genutzten Bibliothek verknüpft ist, um
Überschreiben Sie die Definition in der gemeinsam genutzten Bibliothek. Diese Option kann
auch mit dem --export-dynamisch Option beim Erstellen von a
Positionsunabhängige ausführbare Datei, um Referenzen an globale zu binden
Symbole zur Definition innerhalb der ausführbaren Datei. Diese Option ist
nur sinnvoll auf ELF-Plattformen, die Shared Libraries unterstützen und
Positionsunabhängige ausführbare Dateien.

-Bsymbolische-Funktionen
Binden Sie beim Erstellen einer gemeinsam genutzten Bibliothek Referenzen an globale Funktionen
Symbole zur Definition innerhalb der gemeinsam genutzten Bibliothek, falls vorhanden. Dies
Option kann auch mit dem --export-dynamisch Option, wenn
Erstellen einer positionsunabhängigen ausführbaren Datei, um Referenzen an zu binden
globale Funktionssymbole zur Definition innerhalb der ausführbaren Datei.
Diese Option ist nur auf ELF-Plattformen sinnvoll, die
Shared Libraries und positionsunabhängige ausführbare Dateien.

--dynamische-liste=dynamische-Listen-Datei
Geben Sie dem Linker den Namen einer dynamischen Listendatei an. Das ist
Wird normalerweise beim Erstellen gemeinsamer Bibliotheken verwendet, um eine Liste von
globale Symbole, deren Referenzen nicht an die
Definition innerhalb der Shared Library oder dynamisch erstellen
verknüpfte ausführbare Dateien, um eine Liste von Symbolen anzugeben, die
der Symboltabelle in der ausführbaren Datei hinzugefügt. Diese Option ist nur
sinnvoll auf ELF-Plattformen, die gemeinsam genutzte Bibliotheken unterstützen.

Das Format der dynamischen Liste entspricht dem des Versionsknotens
ohne Geltungsbereich und Knotenname. Sehen VERSION für weitere informationen.

--dynamische-listendaten
Nehmen Sie alle globalen Datensymbole in die dynamische Liste auf.

--dynamic-list-cpp-new
Stellen Sie die integrierte dynamische Liste für den C++-Operator new und delete bereit.
Es ist hauptsächlich nützlich, um gemeinsam genutzte libstdc++ zu erstellen.

--dynamic-list-cpp-typeinfo
Stellen Sie die integrierte dynamische Liste für den C++-Laufzeittyp bereit
Identifizierung.

--check-sections
- NO-Check-Sektionen
Fragt den Linker nicht um Abschnittsadressen zu überprüfen, nachdem sie
zugewiesen, um zu sehen, ob es Überschneidungen gibt. Normalerweise der Linker
führt diese Prüfung durch, und wenn es Überschneidungen findet, wird es
entsprechende Fehlermeldungen erzeugen. Der Linker weiß davon, und
berücksichtigt Abschnitte in Überlagerungen. Der Standard
Verhalten kann mit dem Befehlszeilenschalter wiederhergestellt werden
--check-sections. Abschnittsüberlappung wird normalerweise nicht überprüft
verschiebbare Links. In diesem Fall können Sie die Überprüfung erzwingen, indem Sie verwenden
den --check-sections .

--copy-dt-benötigt-Einträge
--no-copy-dt-benötigt-Einträge
Diese Option beeinflusst die Behandlung von dynamischen Bibliotheken, auf die verwiesen wird
von DT_NEEDED-Tags innerhalb Dynamische ELF-Bibliotheken, die auf der erwähnt werden
Befehlszeile. Normalerweise fügt der Linker kein DT_NEEDED-Tag zum . hinzu
Binärausgabe für jede Bibliothek, die in einem DT_NEEDED-Tag in an . erwähnt wird
Eingabe dynamische Bibliothek. Mit --copy-dt-benötigt-Einträge angegeben auf
die Befehlszeile, jedoch werden alle dynamischen Bibliotheken, die ihr folgen,
haben ihre DT_NEEDED-Einträge hinzugefügt. Das Standardverhalten kann sein
restauriert mit --no-copy-dt-benötigt-Einträge.

Diese Option hat auch Auswirkungen auf die Auflösung von Symbolen in
dynamische Bibliotheken. Mit --copy-dt-benötigt-Einträge dynamische Bibliotheken
auf der Kommandozeile erwähnt wird rekursiv gesucht,
folgen ihren DT_NEEDED-Tags an andere Bibliotheken, um
Auflösen von Symbolen, die von der Ausgabe-Binärdatei benötigt werden. Mit der Standardeinstellung
Einstellung jedoch das Durchsuchen dynamischer Bibliotheken, die darauf folgen
stoppt mit der dynamischen Bibliothek selbst. Es werden keine DT_NEEDED-Links
durchlaufen werden, um Symbole aufzulösen.

--cref
Geben Sie eine Querverweistabelle aus. Wenn eine Linker-Map-Datei erstellt wird
generiert, wird die Querverweistabelle in die Kartendatei gedruckt.
Andernfalls wird es auf der Standardausgabe gedruckt.

Das Format der Tabelle ist bewusst einfach gehalten, damit es
bei Bedarf einfach durch ein Skript verarbeitet werden. Die Symbole sind gedruckt
aus, sortiert nach Namen. Für jedes Symbol ist eine Liste von Dateinamen
gegeben. Wenn das Symbol definiert ist, ist die erste aufgeführte Datei die
Ort der Definition. Wenn das Symbol als Common definiert ist
value dann alle Dateien, in denen dies geschieht, als nächstes erscheinen. Endlich irgendwas
Dateien, die auf das Symbol verweisen, werden aufgelistet.

- nicht definieren-gemeinsam
Diese Option verhindert die Zuweisung von Adressen zu gemeinsamen Symbolen.
Der Skriptbefehl "INHIBIT_COMMON_ALLOCATION" hat die gleiche Wirkung.

Das - nicht definieren-gemeinsam Option ermöglicht die Entkopplung der Entscheidung zu
Zuweisen von Adressen zu gemeinsamen Symbolen aus der Wahl des Ausgangs
Dateityp; andernfalls erzwingt ein nicht verschiebbarer Ausgabetyp die Zuweisung
Adressen an allgemeine Symbole. Verwenden von - nicht definieren-gemeinsam erlaubt
Allgemeine Symbole, auf die von einer gemeinsam genutzten Bibliothek verwiesen wird
zugewiesene Adressen nur im Hauptprogramm. Dadurch entfällt die
ungenutzter doppelter Speicherplatz in der gemeinsam genutzten Bibliothek und verhindert auch
mögliche Verwirrung über das Auflösen des falschen Duplikats, wenn es vorhanden ist
gibt es viele dynamische Module mit spezialisierten Suchpfaden für die Laufzeit
Auflösung des Symbols.

--defsym=Symbol=Ausdruck
Erstellen Sie in der Ausgabedatei ein globales Symbol, das das absolute . enthält
Adresse gegeben von Ausdruck. Sie können diese Option beliebig oft verwenden
nach Bedarf, um mehrere Symbole in der Befehlszeile zu definieren. EIN
eingeschränkte Form der Arithmetik wird für die Ausdruck in diesem
Kontext: Sie können eine hexadezimale Konstante oder den Namen eines
vorhandenes Symbol oder verwenden Sie "+" und "-", um hexadezimal zu addieren oder zu subtrahieren
Konstanten oder Symbole. Wenn Sie ausführlichere Ausdrücke benötigen,
Erwägen Sie die Verwendung der Linker-Befehlssprache aus einem Skript. Hinweis:
Es sollte kein Leerraum dazwischen sein Symbol, das Gleichheitszeichen
("="), und Ausdruck.

--demangle[=Stil]
--no-demangle
Diese Optionen steuern, ob Symbolnamen irrtümlich entschlüsselt werden
Nachrichten und andere Ausgaben. Wenn dem Linker gesagt wird, dass er demangle
versucht Symbolnamen lesbar darzustellen: es streift
führende Unterstriche, wenn sie vom Objektdateiformat verwendet werden, und
konvertiert C++ verstümmelte Symbolnamen in benutzerlesbare Namen.
Verschiedene Compiler haben unterschiedliche Mangelstile. Die Wahl
Das Argument des demangling-Stils kann verwendet werden, um eine geeignete auszuwählen
demangling-Stil für Ihren Compiler. Der Linker wird demangle durch
Standard, es sei denn, die Umgebungsvariable COLLECT_NO_DEMANGLE wird gesetzt.
Diese Optionen können verwendet werden, um die Standardeinstellung zu überschreiben.

-IDatei
--dynamischer-linker=Datei
Legen Sie den Namen des dynamischen Linkers fest. Das ist nur sinnvoll, wenn
Generieren dynamisch verknüpfter ausführbarer ELF-Dateien. Die Standarddynamik
Linker ist normalerweise korrekt; Verwenden Sie das nicht, es sei denn, Sie wissen, was Sie
sind dabei.

--no-dynamic-linker
Lassen Sie beim Erstellen einer ausführbaren Datei die Anforderung einer dynamischen
Linker, der zur Ladezeit verwendet werden soll. Dies ist nur für ELF von Bedeutung
ausführbare Dateien, die dynamische Verschiebungen enthalten und normalerweise erfordern
Einstiegspunktcode, der diese Verlagerungen verarbeiten kann.

--tödliche-Warnungen
--keine-tödlichen-Warnungen
Behandeln Sie alle Warnungen als Fehler. Das Standardverhalten kann sein
mit der Option wiederhergestellt --keine-tödlichen-Warnungen.

--force-exe-Suffix
Stellen Sie sicher, dass eine Ausgabedatei ein .exe-Suffix hat.

Wenn eine erfolgreich erstellte, vollständig verknüpfte Ausgabedatei kein
".exe" oder ".dll" Suffix, diese Option zwingt den Linker, die
Ausgabedatei in eine gleichnamige Datei mit dem Suffix ".exe". Dies
Option ist nützlich, wenn Sie unmodifizierte Unix-Makefiles auf einem
Microsoft Windows-Host, da einige Versionen von Windows nicht ausgeführt werden
Image, es sei denn, es endet mit einem ".exe"-Suffix.

--gc-Abschnitte
--no-gc-sections
Aktivieren Sie die Garbage Collection von nicht verwendeten Eingabeabschnitten. Es wird ignoriert
auf Zielen, die diese Option nicht unterstützen. Das Standardverhalten
(diese Garbage Collection nicht durchzuführen) kann wiederhergestellt werden durch
spezifizieren --no-gc-sections auf der Kommandozeile. Beachten Sie, dass Müll
Sammlung für Ziele im COFF- und PE-Format wird unterstützt, aber die
Die Umsetzung gilt derzeit als experimentell.

--gc-Abschnitte entscheidet durch Prüfung, welche Eingabeabschnitte verwendet werden
Symbole und Versetzungen. Der Abschnitt mit dem Eintragssymbol
und alle Abschnitte, die Symbole enthalten, die in der Befehlszeile nicht definiert sind
werden beibehalten, ebenso wie Abschnitte mit Symbolen, auf die verwiesen wird
dynamische Objekte. Beachten Sie, dass beim Erstellen von gemeinsam genutzten Bibliotheken die
Linker muss davon ausgehen, dass jedes sichtbare Symbol referenziert wird. Wenn
dieser anfängliche Satz von Abschnitten wurde bestimmt, der Linker
markiert rekursiv alle Abschnitte, auf die durch ihre . verwiesen wird, als verwendet
Umzüge. Sehen --Eintrag und --nicht definiert.

Diese Option kann eingestellt werden, wenn eine Teilverknüpfung erstellt wird (aktiviert mit
Option -r). In diesem Fall muss die Wurzel der beibehaltenen Symbole
explizit angegeben entweder durch an --Eintrag or --nicht definiert Option oder
durch einen "ENTRY"-Befehl im Linker-Skript.

--print-gc-sections
--no-print-gc-sections
Listen Sie alle Abschnitte auf, die von der Garbage Collection entfernt wurden. Die Auflistung ist
gedruckt auf stderr. Diese Option ist nur wirksam, wenn Müll
Sammlung wurde über die aktiviert --gc-Abschnitte) Möglichkeit. Die
Standardverhalten (die entfernten Abschnitte nicht aufzulisten)
kann durch Angabe wiederhergestellt werden --no-print-gc-sections auf Befehl
Linie.

--Druckausgabeformat
Geben Sie den Namen des Standardausgabeformats aus (möglicherweise beeinflusst von
andere Befehlszeilenoptionen). Dies ist die Zeichenfolge, die erscheinen würde
in einem Linker-Skriptbefehl "OUTPUT_FORMAT".

--Druckspeichernutzung
Verwendete Größe, Gesamtgröße und verwendete Größe der erstellten Speicherbereiche drucken
mit dem SPEICHER Befehl. Dies ist bei eingebetteten Zielen nützlich, um
haben Sie einen schnellen Überblick über die Menge des freien Speichers. Das Format der
Ausgabe hat eine Überschrift und eine Zeile pro Region. Es ist sowohl menschlich
lesbar und mit Werkzeugen leicht zu analysieren. Hier ist ein Beispiel für eine
Ausgabe:

Speicherregion Verwendete Größe Regionsgröße %age Verwendet
ROM: 256 KB 1 MB 25.00%
Arbeitsspeicher: 32 MB 2 GB 0.00%

--help
Drucken Sie eine Zusammenfassung der Befehlszeilenoptionen auf der Standardausgabe
und verlassen.

--target-help
Drucken Sie eine Zusammenfassung aller zielspezifischen Optionen des Standards
ausgeben und verlassen.

-Karte=Kartendatei
Drucken Sie eine Link-Map zur Datei Kartendatei. Siehe die Beschreibung des
-M Möglichkeit, oben.

--no-keep-memory
ld optimiert normalerweise die Geschwindigkeit über die Speichernutzung durch Zwischenspeichern der
Symboltabellen von Eingabedateien im Speicher. Diese Option sagt ld zu
Optimieren Sie stattdessen die Speichernutzung, indem Sie die Symboltabellen erneut lesen
wie nötig. Dies kann erforderlich sein, wenn ld hat keinen Speicherplatz mehr
beim Verknüpfen einer großen ausführbaren Datei.

--no-undefiniert
-z defs
Melden Sie nicht aufgelöste Symbolreferenzen aus regulären Objektdateien.
Dies geschieht auch dann, wenn der Linker eine nicht-symbolische Freigabe erstellt
Bücherei. Der Schalter --[no-]allow-shlib-undefined steuert die
Verhalten beim Melden nicht aufgelöster Referenzen, die in freigegebenen gefunden wurden
Bibliotheken eingebunden werden.

--allow-multiple-definition
-z Muldefs
Wenn ein Symbol mehrmals definiert wird, wird der Linker normalerweise
einen schwerwiegenden Fehler melden. Diese Optionen ermöglichen mehrere Definitionen und
die erste Definition wird verwendet.

--allow-shlib-undefiniert
--no-allow-shlib-undefined
Erlaubt oder verbietet undefinierte Symbole in gemeinsam genutzten Bibliotheken. Dies
Schalter ist ähnlich wie --no-undefiniert außer dass es bestimmt die
Verhalten, wenn sich die undefinierten Symbole eher in einer Shared Library befinden
als eine normale Objektdatei. Es hat keinen Einfluss darauf, wie undefiniert
Symbole in regulären Objektdateien werden behandelt.

Das Standardverhalten besteht darin, Fehler für alle undefinierten Symbole zu melden
in gemeinsam genutzten Bibliotheken referenziert, wenn der Linker verwendet wird, um
eine ausführbare Datei erstellen, diese aber zulassen, wenn der Linker verwendet wird
um eine gemeinsame Bibliothek zu erstellen.

Die Gründe für das Zulassen von undefinierten Symbolreferenzen in freigegebenen
Bibliotheken, die zum Linkzeitpunkt angegeben sind, sind:

· Eine zum Linkzeitpunkt angegebene gemeinsam genutzte Bibliothek ist möglicherweise nicht identisch mit
diejenige, die zur Ladezeit verfügbar ist, also könnte das Symbol
tatsächlich zur Ladezeit auflösbar sein.

· Es gibt einige Betriebssysteme, zB BeOS und HPPA, bei denen
undefinierte Symbole in Shared Libraries sind normal.

Der BeOS-Kernel patcht beispielsweise Shared Libraries beim Laden
Zeit, um die Funktion auszuwählen, die am besten für die
aktuelle Architektur. Dies wird zum Beispiel verwendet, um
Wählen Sie dynamisch eine geeignete Memset-Funktion aus.

--keine-undefinierte-Version
Wenn ein Symbol eine undefinierte Version hat, wird der Linker normalerweise
ignoriere es. Diese Option verbietet Symbole mit undefinierter Version und
stattdessen wird ein schwerwiegender Fehler ausgegeben.

--default-symver
Erstellen und verwenden Sie eine Standardsymbolversion (den Soname) für
nicht versionierte exportierte Symbole.

--default-imported-symver
Erstellen und verwenden Sie eine Standardsymbolversion (den Soname) für
unversionierte importierte Symbole.

--no-warn-mismatch
Normalerweise ld gibt einen Fehler aus, wenn Sie versuchen, die Eingaben miteinander zu verknüpfen
Dateien, die aus irgendeinem Grund nicht übereinstimmen, vielleicht weil sie
wurden für verschiedene Prozessoren oder für verschiedene zusammengestellt
Endianitäten. Diese Option sagt ld dass es stillschweigend zulassen sollte
solche möglichen Fehler. Diese Option sollte nur mit Vorsicht verwendet werden,
in Fällen, in denen Sie spezielle Maßnahmen ergriffen haben, die sicherstellen, dass
die Linker-Fehler sind unangemessen.

--no-warn-search-mismatch
Normalerweise ld gibt eine Warnung aus, wenn eine inkompatible Bibliothek gefunden wird
bei einer Bibliothekssuche. Diese Option schaltet die Warnung stumm.

--no-whole-archiv
Deaktivieren Sie den Effekt des - Ganzes Archiv Option für nachfolgende
Archivdateien.

--noinhibit-exec
Bewahren Sie die ausführbare Ausgabedatei auf, wenn sie noch verwendbar ist.
Normalerweise erzeugt der Linker keine Ausgabedatei, wenn er
stößt während des Verknüpfungsprozesses auf Fehler; es geht ohne zu schreiben
eine Ausgabedatei, wenn sie einen Fehler ausgibt.

-nostdlib
Nur Bibliotheksverzeichnisse durchsuchen, die explizit im Befehl angegeben sind
Leitung. Bibliotheksverzeichnisse, die in Linker-Skripten angegeben sind (einschließlich
in der Befehlszeile angegebene Linker-Skripte) werden ignoriert.

--oformat=Ausgabeformat
ld kann konfiguriert werden, um mehr als eine Art von Objektdatei zu unterstützen.
Wenn dein ld so konfiguriert ist, können Sie die --oformat Option
um das Binärformat für die Ausgabeobjektdatei anzugeben. Sogar wenn
ld konfiguriert ist, um alternative Objektformate zu unterstützen, müssen Sie nicht
müssen dies normalerweise angeben, da ld sollte konfiguriert werden, um zu produzieren
als Standardausgabeformat das gängigste Format auf jedem Rechner.
Ausgabeformat ist eine Textzeichenfolge, der Name eines bestimmten Formats
von den BFD-Bibliotheken unterstützt. (Sie können die verfügbare Binärdatei auflisten
Formate mit objdump -i.) Der Skriptbefehl "OUTPUT_FORMAT" kann
Geben Sie auch das Ausgabeformat an, aber diese Option überschreibt es.

-Kuchen
--pic-ausführbare Datei
Erstellen Sie eine positionsunabhängige ausführbare Datei. Dies ist derzeit nur
auf ELF-Plattformen unterstützt. Positionsunabhängige ausführbare Dateien sind
ähnlich wie Shared Libraries, da sie von den
dynamischer Linker an die virtuelle Adresse, die das Betriebssystem für sie wählt
(die zwischen Aufrufen variieren können). Wie normal dynamisch
verknüpften ausführbaren Dateien können sie ausgeführt und Symbole in der definiert werden
ausführbare Datei kann nicht von gemeinsam genutzten Bibliotheken überschrieben werden.

-qMagie
Diese Option wird aus Gründen der Linux-Kompatibilität ignoriert.

-Qy Diese Option wird aus Gründen der SVR4-Kompatibilität ignoriert.

--Entspannen Sie sich
--keine-entspannen
Eine Option mit maschinenabhängigen Effekten. Diese Option ist nur
auf einigen Zielen unterstützt.

Auf einigen Plattformen ist die --Entspannen Sie sich Option führt zielspezifisch,
globale Optimierungen, die möglich werden, wenn der Linker aufgelöst wird
Adressierung im Programm, wie z.B. entspannende Adressmodi,
Synthetisieren neuer Anweisungen, Auswählen einer kürzeren Version des aktuellen
Anweisungen und das Kombinieren von konstanten Werten.

Auf einigen Plattformen können diese globalen Optimierungen der Linkzeit bewirken
symbolisches Debugging der resultierenden ausführbaren Datei unmöglich. Das ist
bekannt für die Matsushita MN10200 und MN10300 Familie
von Prozessoren.

Auf Plattformen, auf denen dies nicht unterstützt wird, --Entspannen Sie sich wird akzeptiert, aber
ignoriert.

Auf Plattformen, auf denen --Entspannen Sie sich wird die Option akzeptiert --keine-entspannen kann sein
verwendet, um die Funktion zu deaktivieren.

- Retain-Symbole-Datei =Dateinamen
Behalten einzige die in der Datei aufgeführten Symbole Dateinamen, alles verwerfen
Andere. Dateinamen ist einfach eine flache Datei mit einem Symbolnamen pro
Leitung. Diese Option ist besonders nützlich in Umgebungen (wie z
VxWorks), wo eine große globale Symboltabelle akkumuliert wird
nach und nach, um Laufzeitspeicher zu sparen.

--retain-symbols-Datei benötigen nicht verwerfen Sie undefinierte Symbole, oder
Symbole für Umzüge benötigt.

Sie können nur angeben --retain-symbols-Datei einmal im Befehl
Leitung. Es überschreibt -s und -S.

-rPfad=dir
Fügen Sie dem Suchpfad der Laufzeitbibliothek ein Verzeichnis hinzu. Das wird verwendet
beim Verknüpfen einer ausführbaren ELF-Datei mit gemeinsam genutzten Objekten. Alle -Pfad
Argumente werden verkettet und an den Laufzeitlinker übergeben, der
verwendet sie, um gemeinsam genutzte Objekte zur Laufzeit zu finden. Die -Pfad Option
wird auch verwendet, um gemeinsam genutzte Objekte zu finden, die von
gemeinsam genutzte Objekte, die explizit im Link enthalten sind; siehe Beschreibung
dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. -rpath-link Möglichkeit. Wenn -Pfad wird nicht verwendet, wenn ein Link verknüpft wird
Ausführbare ELF-Datei, der Inhalt der Umgebungsvariablen
"LD_RUN_PATH" wird verwendet, wenn es definiert ist.

Das -Pfad Option kann auch unter SunOS verwendet werden. Standardmäßig ist unter SunOS
der Linker bildet einen Laufzeitsuchpfad aus allen -L
Optionen gegeben ist. Wenn eine -Pfad Option verwendet wird, wird die Laufzeit
Suchpfad wird ausschließlich unter Verwendung der -Pfad Optionen,
Ignorieren der -L Optionen. Dies kann bei der Verwendung von gcc nützlich sein, was
fügt viele hinzu -L Optionen, die sich auf NFS-gemounteten Dateisystemen befinden können.

Zur Kompatibilität mit anderen ELF-Linkern, wenn die -R Option ist
gefolgt von einem Verzeichnisnamen anstelle eines Dateinamens, es ist
behandelt als die -Pfad .

-rpath-link=dir
Bei Verwendung von ELF oder SunOS kann eine gemeinsam genutzte Bibliothek eine andere erfordern.
Dies geschieht, wenn ein "ld -shared"-Link eine freigegebene Bibliothek als . enthält
eine der Eingabedateien.

Wenn der Linker auf eine solche Abhängigkeit stößt, wenn er eine nicht-
freigegebenen, nicht verschiebbaren Link, wird automatisch versucht, ihn zu finden
die erforderliche Shared Library und fügen Sie sie in den Link ein, falls dies der Fall ist
nicht explizit enthalten. In einem solchen Fall ist die -rpath-link Option
gibt den ersten zu durchsuchenden Satz von Verzeichnissen an. Die -rpath-link
Option kann eine Folge von Verzeichnisnamen angeben, entweder durch
Angabe einer durch Doppelpunkte getrennten Namensliste oder durch Erscheinen
mehrmals.

Diese Option sollte mit Vorsicht verwendet werden, da sie die Suche überschreibt
Pfad, der möglicherweise hart in eine gemeinsam genutzte Bibliothek kompiliert wurde. In
In einem solchen Fall ist es möglich, unbeabsichtigt ein anderes zu verwenden
Suchpfad als der Laufzeitlinker tun würde.

Der Linker verwendet die folgenden Suchpfade, um erforderliche . zu finden
gemeinsam genutzte Bibliotheken:

1. Alle von . angegebenen Verzeichnisse -rpath-link Optionen.

2. Alle von . angegebenen Verzeichnisse -Pfad Optionen. Der Unterschied
zwischen -Pfad und -rpath-link sind die Verzeichnisse, die durch . angegeben sind
-Pfad Optionen sind in der ausführbaren Datei enthalten und werden verwendet bei
Laufzeit, während die -rpath-link Option ist nur wirksam bei
Linkzeit. Suche -Pfad auf diese Weise wird nur unterstützt von
Native Linker und Crosslinker, die konfiguriert wurden
mit dem --with-sysroot .

3. Auf einem ELF-System für native Linker, wenn die -Pfad und
-rpath-link Optionen nicht verwendet wurden, durchsuchen Sie den Inhalt der
Umgebungsvariable "LD_RUN_PATH".

4. Unter SunOS, wenn die -Pfad Option wurde nicht verwendet, suchen Sie nach
Verzeichnisse angegeben mit -L Optionen.

5. Durchsuchen Sie nach einem nativen Linker den Inhalt der Umgebung
Variable "LD_LIBRARY_PATH".

6. Für einen nativen ELF-Linker die Verzeichnisse in "DT_RUNPATH" oder
"DT_RPATH" einer Shared Library werden nach Shared gesucht
Bibliotheken, die es braucht. Die Einträge "DT_RPATH" werden ignoriert, wenn
"DT_RUNPATH"-Einträge vorhanden.

7. Die Standardverzeichnisse, normalerweise / lib und / Usr / lib.

8. Für einen nativen Linker auf einem ELF-System, wenn die Datei
/etc/ld.so.conf existiert, die Liste der darin gefundenen Verzeichnisse
Datei.

Wenn die erforderliche gemeinsam genutzte Bibliothek nicht gefunden wird, wird der Linker ausgeben
eine Warnung und fahren Sie mit dem Link fort.

-geteilt
-Teilbar
Erstellen Sie eine gemeinsam genutzte Bibliothek. Dies wird derzeit nur auf ELF unterstützt,
XCOFF- und SunOS-Plattformen. Unter SunOS wird der Linker automatisch
Erstellen Sie eine gemeinsam genutzte Bibliothek, wenn die -e Option wird nicht verwendet und es gibt
undefinierte Symbole im Link.

--sort-common
--sort-common=aufsteigend
--sort-common=absteigend
Diese Option sagt ld um die gemeinsamen Symbole nach Ausrichtung in zu sortieren
aufsteigende oder absteigende Reihenfolge, wenn sie in die
entsprechende Ausgabeabschnitte. Die berücksichtigten Symbolausrichtungen sind
sechzehn Byte oder größer, acht Byte, vier Byte, zwei Byte und ein-
Byte. Dies dient dazu, Lücken zwischen Symbolen aufgrund der Ausrichtung zu vermeiden
Einschränkungen. Wenn keine Sortierreihenfolge angegeben ist, dann absteigend
Ordnung wird vorausgesetzt.

--sort-section=name
Diese Option wendet "SORT_BY_NAME" auf alle Platzhalterbereiche an
Muster im Linker-Skript.

--sort-section=Ausrichtung
Diese Option wendet "SORT_BY_ALIGNMENT" auf alle Platzhalterbereiche an
Muster im Linker-Skript.

--Split-by-file[=Größe]
Ähnlich --Split-by-reloc erstellt aber einen neuen Ausgabeabschnitt für
jede Eingabedatei, wenn Größe ist erreicht. Größe standardmäßig auf eine Größe von 1 . eingestellt
wenn nicht gegeben.

--split-by-reloc[=zählen]
Versucht, zusätzliche Abschnitte in der Ausgabedatei zu erstellen, damit keine
Ein einzelner Ausgabeabschnitt in der Datei enthält mehr als zählen
Umzüge. Dies ist nützlich, wenn Sie riesige verlagerbare Dateien generieren
zum Herunterladen in bestimmte Echtzeit-Kernel mit dem COFF-Objekt
Datei Format; da COFF nicht mehr als 65535 . darstellen kann
Umzüge in einem Abschnitt. Beachten Sie, dass dies nicht funktioniert
mit Objektdateiformaten, die beliebige Abschnitte nicht unterstützen.
Der Linker teilt keine einzelnen Eingabeabschnitte für
Umverteilung, wenn also ein einzelner Eingabeabschnitt mehr als
zählen Umzüge ein Ausgabeabschnitt enthält so viele
Umzüge. zählen Standardmäßig ist der Wert 32768.

--Statistiken
Berechnen und Anzeigen von Statistiken über den Betrieb des Linkers,
wie Ausführungszeit und Speicherverbrauch.

--sysroot=Verzeichnis
Verwenden Sie unsere Größentabelle, um die Rasse und das Gewicht Ihres Hundes einer der XNUMX verfügbaren Bettgrößen zuzuordnen. Wenn Sie Fragen zur Größe Ihres Hundes haben, können Sie sich gerne mit uns in Verbindung setzen. Verzeichnis als Speicherort der sysroot, überschreibt die
Konfigurationszeit Standard. Diese Option wird nur von Linkern unterstützt
die konfiguriert wurden mit --with-sysroot.

--traditionelles-format
Bei einigen Zielen ist die Ausgabe von ld ist in mancher Hinsicht anders als
die Ausgabe eines vorhandenen Linkers. Dieser Schalter fordert ld benutzen
stattdessen das traditionelle Format.

Unter SunOS beispielsweise ld kombiniert doppelte Einträge im Symbol
String-Tabelle. Dies kann die Größe einer Ausgabedatei mit vollem
Debugging-Informationen um über 30 Prozent. Leider ist das SunOS
Das Programm "dbx" kann das resultierende Programm nicht lesen ("gdb" hat keine
Problem). Die --traditionelles-format Schalter sagt ld nicht kombinieren
doppelte Einträge.

--section-start=Abteilungsname=org
Suchen Sie einen Abschnitt in der Ausgabedatei an der angegebenen absoluten Adresse
by org. Sie können diese Option so oft wie nötig verwenden, um
Suchen Sie mehrere Abschnitte in der Befehlszeile. org muss ein Single sein
hexadezimale ganze Zahl; aus Kompatibilitätsgründen mit anderen Linkern können Sie
das führende weglassen 0x normalerweise mit hexadezimalen Werten verbunden.
Hinweis: Es sollte kein Leerraum dazwischen sein Abteilungsname, die
Gleichheitszeichen ("="), und org.

-Tbss=org
-Tdata=org
-Ttext=org
Das gleiche wie --Abschnitt-Start, mit ".bss", ".data" oder ".text" als
Abteilungsname.

-Ttext-Segment=org
Beim Erstellen einer ausführbaren ELF-Datei wird die Adresse des
erstes Byte des Textsegments.

-Trodata-Segment=org
Beim Erstellen einer ausführbaren ELF-Datei oder eines gemeinsam genutzten Objekts für ein Ziel, bei dem
die schreibgeschützten Daten befinden sich in einem eigenen Segment getrennt von den
ausführbaren Text, wird die Adresse des ersten Bytes des
schreibgeschütztes Datensegment.

-Tldata-segment=org
Beim Erstellen einer ausführbaren ELF-Datei oder eines gemeinsam genutzten Objekts für ein x86-64-Medium
Speichermodell, es wird die Adresse des ersten Bytes des
ldata-Segment.

--unresolved-symbols=Methode
Bestimmen Sie, wie nicht aufgelöste Symbole behandelt werden. Es gibt vier
mögliche Werte für Methode:

alles ignorieren
Melden Sie keine ungelösten Symbole.

alles melden
Melden Sie alle nicht aufgelösten Symbole. Dies ist die Standardeinstellung.

Ignoriere-in-Objekt-Dateien
Unaufgelöste Symbole melden, die in freigegebenen . enthalten sind
Bibliotheken, aber ignorieren Sie sie, wenn sie von regulären Objekten stammen
Dateien.

ignorieren-in-shared-libs
Melden Sie unaufgelöste Symbole, die aus regulären Objektdateien stammen,
aber ignorieren Sie sie, wenn sie aus gemeinsam genutzten Bibliotheken stammen. Das kann
nützlich sein, wenn Sie eine dynamische Binärdatei erstellen, und es ist bekannt, dass
alle gemeinsam genutzten Bibliotheken, auf die es verweisen sollte, sind
in der Befehlszeile des Linkers enthalten.

Das Verhalten für Shared Libraries allein kann auch sein
gesteuert von der --[no-]allow-shlib-undefined .

Normalerweise generiert der Linker für jeden eine Fehlermeldung
gemeldetes ungelöstes Symbol, aber die Option --warn-unresolved-symbols
kann dies in eine Warnung ändern.

--dll-verbose
--verbose[=NUMBER]
Anzeige der Versionsnummer für ld und listen Sie die Linker-Emulationen auf
unterstützt. Zeigen Sie an, welche Eingabedateien geöffnet werden können und welche nicht.
Zeigen Sie das Linker-Skript an, das vom Linker verwendet wird. Wenn die optionale
NUMBER Argument > 1, Status des Plugin-Symbols wird ebenfalls angezeigt.

--Version-Skript =Versions-Skriptdatei
Geben Sie dem Linker den Namen eines Versionsskripts an. Das ist
Wird normalerweise beim Erstellen gemeinsamer Bibliotheken verwendet, um zusätzliche
Informationen über die Versionshierarchie für die Bibliothek
erstellt. Diese Option wird nur auf ELF-Plattformen vollständig unterstützt
die gemeinsam genutzte Bibliotheken unterstützen; sehen VERSION. Es ist teilweise
auf PE-Plattformen unterstützt, die Versionsskripte zum Filtern verwenden können
Symbolsichtbarkeit im Auto-Export-Modus: alle markierten Symbole lokal in
das Versionsskript wird nicht exportiert.

--warn-common
Warnen, wenn ein gemeinsames Symbol mit einem anderen gemeinsamen Symbol kombiniert wird oder
mit einer Symboldefinition. Unix-Linker erlauben dies etwas schlampig
praktizieren, Linker auf einigen anderen Betriebssystemen jedoch nicht. Dies
Mit dieser Option können Sie potenzielle Probleme aus der Kombination globaler
Symbole. Leider verwenden einige C-Bibliotheken diese Praxis, sodass Sie
möglicherweise einige Warnungen zu Symbolen in den Bibliotheken sowie in
Ihre Programme.

Es gibt drei Arten von globalen Symbolen, hier illustriert von C
Beispiele:

int i = 1;
Eine Definition, die in den initialisierten Datenabschnitt der
Ausgabedatei.

extern int i;
Eine undefinierte Referenz, die keinen Speicherplatz zuweist. Dort
muss entweder eine Definition oder ein allgemeines Symbol für die Variable sein
irgendwo.

int i;
Ein gemeinsames Symbol. Wenn es nur (eine oder mehrere) Gemeinsamkeiten gibt
Symbole für eine Variable, es geht in den nicht initialisierten Datenbereich
der Ausgabedatei. Der Linker führt mehrere gemeinsame Symbole zusammen
für dieselbe Variable in ein einzelnes Symbol. Wenn sie von sind
verschiedene Größen, es wählt die größte Größe aus. Der Linker wird a
gemeinsames Symbol in eine Deklaration, wenn es eine Definition von gibt
die gleiche Variable.

Das --warn-common Option kann fünf Arten von Warnungen erzeugen. Jeder
Warnung besteht aus einem Zeilenpaar: die erste beschreibt das Symbol
gerade angetroffen, und das zweite beschreibt das vorherige Symbol
mit dem gleichen Namen angetroffen. Eines oder beide der beiden Symbole
wird ein gemeinsames Symbol sein.

1. Ein gemeinsames Symbol in eine Referenz verwandeln, denn es gibt
schon eine Definition für das Symbol.

( ): Warnung: gemeinsam von ` '
per Definition überschrieben
( ): Warnung: hier definiert

2. Ein gemeinsames Symbol in eine Referenz verwandeln, weil ein späteres
Definition für das Symbol gefunden wird. Dies ist das gleiche wie
der vorherige Fall, außer dass die Symbole in a . angetroffen werden
abweichende Reihenfolge.

( ): Warnung: Definition von ` '
Übergeordnetes gemeinsames
( ): Warnung: Common ist hier

3. Zusammenführen eines gemeinsamen Symbols mit einem vorherigen gemeinsamen Symbol gleicher Größe
Symbol.

( ): Warnung: mehrfach häufig
von ` '
( ): Warnung: vorherige gemeinsame ist hier

4. Zusammenführen eines gemeinsamen Symbols mit einem vorherigen größeren gemeinsamen Symbol.

( ): Warnung: gemeinsam von ` '
überschrieben durch größere gemeinsame
( ): Warnung: größeres Common ist hier

5. Zusammenführen eines gemeinsamen Symbols mit einem vorherigen kleineren gemeinsamen Symbol.
Dies ist das gleiche wie im vorherigen Fall, außer dass die Symbole
werden in einer anderen Reihenfolge angetroffen.

( ): Warnung: gemeinsam von ` '
Vorrang vor kleineren gemeinsamen
( ): Warnung: kleineres Common ist hier

--warn-Konstruktoren
Warnen, wenn globale Konstruktoren verwendet werden. Dies ist nur nützlich für
einige Objektdateiformate. Für Formate wie COFF oder ELF ist die
Linker kann die Verwendung globaler Konstruktoren nicht erkennen.

--warn-multiple-gp
Warnen, wenn mehrere globale Zeigerwerte in der Ausgabe erforderlich sind
Datei. Dies ist nur für bestimmte Prozessoren sinnvoll, wie z
Alpha. Insbesondere setzen einige Prozessoren großwertige Konstanten in
ein besonderer Abschnitt. Ein spezielles Register (der globale Zeiger) zeigt
in die Mitte dieses Abschnitts, damit Konstanten geladen werden können
effizient über einen relativen Adressierungsmodus des Basisregisters. Schon seit
der Offset im Basisregister-Relativmodus ist fest und relativ
klein (zB 16 Bit), dies begrenzt die maximale Größe der Konstanten
Schwimmbad. In großen Programmen ist es daher oft notwendig,
mehrere globale Zeigerwerte, um alle ansprechen zu können
mögliche Konstanten. Diese Option bewirkt, dass eine Warnung ausgegeben wird
wann immer dieser Fall auftritt.

--einmal warnen
Nur einmal für jedes undefinierte Symbol warnen, nicht einmal pro
Modul, das darauf verweist.

--warn-section-align
Warnen, wenn die Adresse eines Ausgangsabschnitts geändert wird wegen
Ausrichtung. Normalerweise wird die Ausrichtung durch eine Eingabe festgelegt
Sektion. Die Adresse wird nur geändert, wenn es nicht explizit
spezifiziert; das heißt, wenn der Befehl "SECTIONS" kein a . angibt
Startadresse für den Abschnitt.

--warn-shared-textrel
Warnen, wenn der Linker einem gemeinsam genutzten Objekt ein DT_TEXTREL hinzufügt.

--warn-alternate-em
Warnen, wenn ein Objekt über einen alternativen ELF-Maschinencode verfügt.

--warn-unresolved-symbols
Wenn der Linker ein nicht aufgelöstes Symbol meldet (siehe die
Option --unaufgelöste-Symbole) wird normalerweise ein Fehler generiert.
Mit dieser Option wird stattdessen eine Warnung generiert.

--error-unresolved-symbols
Dadurch wird das Standardverhalten des Linkers beim Generieren von Fehlern wiederhergestellt
wenn es unaufgelöste Symbole meldet.

- Ganzes Archiv
Für jedes Archiv, das in der Befehlszeile nach dem
- Ganzes Archiv Option, nehmen Sie jede Objektdatei im Archiv in
den Link, anstatt das Archiv nach dem gewünschten Objekt zu durchsuchen
Dateien. Dies wird normalerweise verwendet, um eine Archivdatei in eine freigegebene Datei umzuwandeln
Bibliothek und erzwingt, dass jedes Objekt in das resultierende
gemeinsame Bibliothek. Diese Option kann mehrmals verwendet werden.

Zwei Hinweise zur Verwendung dieser Option von gcc: Erstens weiß gcc nicht
über diese Option, also müssen Sie verwenden -Wl,-ganzes-archiv. Zweite,
vergiss nicht zu verwenden -Wl,-kein-ganzes-Archiv nach deiner Liste von
Archive, da gcc eine eigene Liste von Archiven zu Ihrem hinzufügt
Link und Sie möchten möglicherweise nicht, dass sich dieses Flag auch auf diese auswirkt.

--wrap=Symbol
Verwenden Sie eine Wrapper-Funktion für Symbol. Jeder undefinierte Verweis auf
Symbol wird aufgelöst zu "__wrap_Symbol". Beliebig undefiniert
Verweis auf "__real_Symbol" wird gelöst zu Symbol.

Dies kann verwendet werden, um einen Wrapper für eine Systemfunktion bereitzustellen. Die
Wrapper-Funktion sollte "__wrap_Symbol". Wenn es will
Rufen Sie die Systemfunktion auf, sie sollte "__real_" aufrufenSymbol".

Hier ist ein triviales Beispiel:

nichtig *
__wrap_malloc (Größe_t c)
{
printf ("malloc aufgerufen mit %zu\n", c);
__real_malloc zurückgeben (c);
}

Wenn Sie anderen Code mit dieser Datei verknüpfen mit --wickeln malloc, dann alle
Aufrufe von "malloc" rufen stattdessen die Funktion "__wrap_malloc" auf.
Der Aufruf von "__real_malloc" in "__wrap_malloc" ruft das echte
"malloc"-Funktion.

Vielleicht möchten Sie auch eine "__real_malloc"-Funktion bereitstellen, damit
Links ohne die --wickeln Option wird gelingen. Wenn du dies tust, bist du
sollte die Definition von "__real_malloc" nicht in derselben Datei ablegen
als "__wrap_malloc"; Wenn Sie dies tun, kann der Assembler den Anruf auflösen
bevor der Linker die Möglichkeit hat, ihn in "malloc" zu umschließen.

--eh-frame-hdr
Fordern Sie die Erstellung des Abschnitts ".eh_frame_hdr" und ELF . an
Segmentkopf "PT_GNU_EH_FRAME".

--no-ld-generated-unwind-info
Fordern Sie die Erstellung von ".eh_frame"-Abwicklungsinformationen für den generierten Linker an
Codeabschnitte wie PLT. Diese Option ist standardmäßig aktiviert, wenn Linker
generierte Abwicklungsinformationen werden unterstützt.

--eable-new-dtags
--disable-new-dtags
Dieser Linker kann die neuen dynamischen Tags in ELF erstellen. Aber die Älteren
ELF-Systeme können sie möglicherweise nicht verstehen. Wenn Sie angeben
--eable-new-dtags, werden die neuen dynamischen Tags nach Bedarf erstellt
und ältere dynamische Tags werden weggelassen. Wenn Sie angeben
--disable-new-dtags, werden keine neuen dynamischen Tags erstellt. Von
Standardmäßig werden die neuen dynamischen Tags nicht erstellt. Beachten Sie, dass diese
Optionen sind nur für ELF-Systeme verfügbar.

--hash-size=Anzahl
Setzen Sie die Standardgröße der Hash-Tabellen des Linkers auf eine Primzahl
nah Anzahl. Durch Erhöhen dieses Wertes kann die Länge von . verringert werden
Zeit, die der Linker benötigt, um seine Aufgaben auszuführen, auf Kosten von
den Speicherbedarf des Linkers erhöhen. Ebenso reduzierend
dieser Wert kann den Speicherbedarf auf Kosten von
Geschwindigkeit.

--hash-style=Stil
Legen Sie den Typ der Hash-Tabelle(n) des Linkers fest. Stil kann entweder "sysv" sein
für klassische ELF ".hash" Abschnitt, "gnu" für neuen Stil GNU
".gnu.hash"-Abschnitt oder "beide" sowohl für das klassische ELF ".hash" als auch für
neuer GNU-Stil ".gnu.hash" Hash-Tabellen. Der Standardwert ist "sysv".

--compress-debug-sections=keine
--compress-debug-sections=zlib
- Komfort-Debug-Sektionen = Zlib-GNU
--compress-debug-sections=zlib-gabi
Auf ELF-Plattformen steuern diese Optionen, wie DWARF-Debugging-Abschnitte
werden mit zlib komprimiert. --compress-debug-sections=keine nicht
komprimieren Sie DWARF-Debug-Abschnitte. - Komfort-Debug-Sektionen = Zlib-GNU
komprimiert DWARF-Debug-Abschnitte und benennt Debug-Abschnittsnamen um in
anfangen mit .zdebug statt .debuggen.
--compress-debug-sections=zlib und
--compress-debug-sections=zlib-gabi DWARF-Debug-Abschnitte komprimieren
mit SHF_COMPRESSED vom ELF ABI. Das Standardverhalten variiert
abhängig vom betroffenen Ziel und den verwendeten Konfigurationsoptionen
um die Werkzeugkette aufzubauen. Die Vorgabe kann durch Untersuchen ermittelt werden
die Ausgabe des Linkers --help .

--Reduzieren-Speicher-Overheads
Diese Option reduziert den Speicherbedarf zur ld-Laufzeit, bei der
Kosten der Verbindungsgeschwindigkeit. Dies wurde eingeführt, um die alten auszuwählen
O(n^2)-Algorithmus für die Generierung von Link-Map-Dateien anstelle des neuen
O(n)-Algorithmus, der etwa 40% mehr Speicher für die Symbolspeicherung verwendet.

Ein weiterer Effekt des Schalters besteht darin, die Standardgröße der Hash-Tabelle festzulegen
auf 1021, was wiederum Speicher spart, auf Kosten der Verlängerung der
Laufzeit des Linkers. Dies geschieht jedoch nicht, wenn die --Hash-Größe
Schalter verwendet wurde.

Das --Reduzieren-Speicher-Overheads Schalter kann auch zum Aktivieren verwendet werden
andere Kompromisse in zukünftigen Versionen des Linkers.

--build-id
--build-id=Stil
Fordern Sie die Erstellung eines ELF-Notizabschnitts ".note.gnu.build-id" an oder
ein ".buildid" COFF-Abschnitt. Der Inhalt der Notiz ist einzigartig
Bits, die diese verknüpfte Datei identifizieren. Stil kann "uuid" sein, um 128 zu verwenden
zufällige Bits, "sha1", um einen 160-Bit-SHA1-Hash auf der Norm zu verwenden
Teile des Ausgabeinhalts, "md5", um einen 128-Bit-MD5-Hash zu verwenden
die normativen Teile des Ausgabeinhalts oder "0xHexstring" benutzen
eine ausgewählte Bitfolge, die als gerade Zahl von hexadezimal angegeben wird
Ziffern ("-" und ":" Zeichen zwischen Ziffernpaaren werden ignoriert).
If Stil weggelassen wird, wird "sha1" verwendet.

Die Stile "md5" und "sha1" erzeugen einen Bezeichner, der immer
in einer identischen Ausgabedatei gleich, aber unter allen eindeutig
nicht identische Ausgabedateien. Es soll nicht mit einem verglichen werden
Prüfsumme für den Inhalt der Datei. Eine verknüpfte Datei kann geändert werden
später von anderen Tools, aber die Build-ID-Bitfolge identifiziert die
Die ursprüngliche verknüpfte Datei ändert sich nicht.

Übergeben von "keiner" für Stil deaktiviert die Einstellung von jeder "--build-id"
Optionen weiter oben in der Befehlszeile.

Der i386 PE-Linker unterstützt die -geteilt Option, die die Ausgabe bewirkt
eine dynamisch verknüpfte Bibliothek (DLL) anstelle einer normalen zu sein
ausführbar. Sie sollten die Ausgabe "*.dll" nennen, wenn Sie dies verwenden
Möglichkeit. Darüber hinaus unterstützt der Linker vollständig den Standard "*.def"
Dateien, die in der Linker-Befehlszeile wie ein Objekt angegeben werden können
Datei (tatsächlich sollte sie Archiven vorangehen, aus denen sie Symbole exportiert, nach
stellen Sie sicher, dass sie wie eine normale Objektdatei eingebunden werden).

Zusätzlich zu den allen Zielen gemeinsamen Optionen bietet der i386 PE-Linker
Unterstützung zusätzlicher Befehlszeilenoptionen, die für den i386 spezifisch sind
PE-Ziel. Optionen, die Werte annehmen, können von ihren Werten getrennt werden
entweder durch ein Leerzeichen oder ein Gleichheitszeichen.

--add-stdcall-alias
Falls angegeben, Symbole mit einem stdcall-Suffix (@nn) wird exportiert als-
ist und auch mit dem Suffix abgestreift. [Diese Option ist spezifisch für
der auf i386 PE gerichtete Port des Linkers]

--base-Datei Datei
Verwenden Sie unsere Größentabelle, um die Rasse und das Gewicht Ihres Hundes einer der XNUMX verfügbaren Bettgrößen zuzuordnen. Wenn Sie Fragen zur Größe Ihres Hundes haben, können Sie sich gerne mit uns in Verbindung setzen. Datei als Name einer Datei, in der die Basisadressen gespeichert werden
aller Umzüge zum Generieren von DLLs mit dlltool.
[Dies ist eine i386 PE-spezifische Option]

--dll
Erstellen Sie eine DLL anstelle einer regulären ausführbaren Datei. Sie können auch verwenden
-geteilt oder geben Sie eine "BIBLIOTHEK" in einer bestimmten ".def"-Datei an. [Dies
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--enable-long-section-names
--disable-long-section-names
Die PE-Varianten des COFF-Objektformats fügen eine Erweiterung hinzu, die
erlaubt die Verwendung von Abschnittsnamen mit mehr als acht Zeichen, die
normale Grenze für COFF. Standardmäßig sind diese Namen nur zulässig in
Objektdateien, da vollständig verknüpfte ausführbare Images die
COFF-Zeichenfolgentabelle erforderlich, um die längeren Namen zu unterstützen. Als GNU
Erweiterung ist es möglich, deren Verwendung in ausführbaren Images zuzulassen
auch, oder (wahrscheinlich sinnlos!) im Objekt zu verbieten
Dateien, indem Sie diese beiden Optionen verwenden. Ausführbare Bilder generiert
mit diesen langen Abschnittsnamen sind etwas vom Standard abweichend und tragen
wie sie eine String-Tabelle machen, und kann eine verwirrende Ausgabe erzeugen, wenn
mit nicht GNU PE-fähigen Tools untersucht, wie z. B. Dateibetrachtern und
Dumper. GDB verlässt sich jedoch auf die Verwendung von PE-Langabschnittsnamen
um Dwarf-2-Debug-Informationsabschnitte in einem ausführbaren Image zu finden
zur Laufzeit, und wenn also keine Option im Befehl angegeben ist-
Linie, ld aktiviert lange Abschnittsnamen, überschreibt den Standard und
technisch korrektes Verhalten, wenn das Vorhandensein von Debug festgestellt wird
Informationen beim Verknüpfen eines ausführbaren Images und nicht beim Strippen
Symbole. [Diese Option gilt für alle PE-Zielports des
Linker]

--enable-stdcall-fixup
--disable-stdcall-fixup
Wenn der Link ein Symbol findet, das er nicht auflösen kann, wird es versucht
um "Fuzzy-Linking" durchzuführen, indem Sie nach einem anderen definierten Symbol suchen, das
unterscheidet sich nur im Format des Symbolnamens (cdecl vs stdcall)
und löst dieses Symbol auf, indem es mit dem Spiel verknüpft wird. Zum Beispiel,
das undefinierte Symbol "_foo" könnte mit der Funktion verknüpft sein
"_foo@12" oder das undefinierte Symbol "_bar@16" könnte mit dem
Funktion "_bar". Wenn der Linker dies tut, gibt er eine Warnung aus,
da es normalerweise nicht hätte verlinkt werden sollen, aber manchmal importieren
Bibliotheken, die aus DLLs von Drittanbietern generiert werden, benötigen diese Funktion möglicherweise, um
verwendbar sein. Wenn Sie angeben --enable-stdcall-fixup, diese Funktion ist
vollständig aktiviert und Warnungen werden nicht gedruckt. Wenn Sie angeben
--disable-stdcall-fixup, diese Funktion ist deaktiviert und so
Nichtübereinstimmungen gelten als Fehler. [Diese Option ist spezifisch
zum i386 PE-Zielport des Linkers]

--führender-unterstrich
--kein führender Unterstrich
Für die meisten Ziele ist das Standardsymbol-Präfix ein Unterstrich und ist
in der Beschreibung des Ziels definiert. Mit dieser Option ist es möglich,
deaktivieren/aktivieren Sie das standardmäßige Unterstrich-Symbol-Präfix.

--export-alle-symbole
Wenn angegeben, werden alle globalen Symbole in den Objekten verwendet, um eine DLL zu erstellen
wird von der DLL exportiert. Beachten Sie, dass dies die Standardeinstellung ist, wenn
sonst gäbe es keine exportierten Symbole. Wenn Symbole sind
explizit über DEF-Dateien exportiert oder implizit über . exportiert
Funktionsattribute, die Standardeinstellung ist, nichts anderes zu exportieren
es sei denn, diese Option ist gegeben. Beachten Sie, dass die Symbole "DllMain@12",
"DllEntryPoint@0", "DllMainCRTStartup@12" und "impure_ptr" werden
nicht automatisch exportiert werden. Auch aus anderen importierten Symbolen
DLLs werden nicht reexportiert, ebensowenig Symbole, die die DLLs angeben
internes Layout wie solche, die mit "_head_" beginnen oder enden
mit "_iname". Außerdem werden keine Symbole aus "libgcc", "libstd++",
"libmingw32" oder "crtX.o" wird exportiert. Symbole, deren Namen
Beginnen Sie mit "__rtti_" oder "__builtin_" wird nicht exportiert, um zu helfen
mit C++-DLLs. Schließlich gibt es eine umfangreiche Liste von Cygwin-
private Symbole, die nicht exportiert werden (dies gilt natürlich für
beim Erstellen von DLLs für Cygwin-Ziele). Diese Cygwin-Ausschlüsse sind:
"_cygwin_dll_entry@12", "_cygwin_crt0_common@8",
"_cygwin_noncygwin_dll_entry@12", "_fmode", "_impure_ptr",
"cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1",
"cygwin_premain2", "cygwin_premain3" und "environ". [Diese Option
ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--Ausschlusssymbole Symbol,Symbol, ...
Gibt eine Liste von Symbolen an, die nicht automatisch sein sollen
exportiert. Die Symbolnamen können durch Kommas oder Doppelpunkte getrennt werden.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--Alle-Symbole ausschließen
Gibt an, dass keine Symbole automatisch exportiert werden sollen. [Dies
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--file-alignment
Geben Sie die Dateiausrichtung an. Abschnitte in der Datei beginnen immer
bei Datei-Offsets, die ein Vielfaches dieser Zahl sind. Dies ist die Standardeinstellung
auf 512. [Diese Option ist spezifisch für den i386 PE-Zielport von
der Linker]

--Haufen Reserve
--Haufen Reserve,verpflichten
Geben Sie die Anzahl der zu reservierenden Bytes an (und optional
commit) als Heap für dieses Programm zu verwenden. Der Standardwert ist 1 MB
reserviert, 4K festgeschrieben. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--image-base Wert
Verwenden Sie unsere Größentabelle, um die Rasse und das Gewicht Ihres Hundes einer der XNUMX verfügbaren Bettgrößen zuzuordnen. Wenn Sie Fragen zur Größe Ihres Hundes haben, können Sie sich gerne mit uns in Verbindung setzen. Wert als Basisadresse Ihres Programms oder Ihrer DLL. Dies ist das
niedrigster Speicherort, der verwendet wird, wenn Ihr Programm oder Ihre DLL
geladen ist. Um den Umzugsbedarf zu reduzieren und die Leistung zu verbessern
Ihrer DLLs sollte jede eine eindeutige Basisadresse haben und nicht
überlappen alle anderen DLLs. Der Standardwert ist 0x400000 für ausführbare Dateien,
und 0x10000000 für DLLs. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--kill-at
Falls angegeben, werden die stdcall-Suffixe (@nn) werden von Symbolen entfernt
bevor sie exportiert werden. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--große-adress-bewusst
Falls vorhanden, wird das entsprechende Bit im Feld "Merkmale" des
Der COFF-Header ist so eingestellt, dass er anzeigt, dass diese ausführbare Datei
virtuelle Adressen größer als 2 Gigabyte. Dies sollte verwendet werden in
in Verbindung mit /3GB oder /USERVA=Wert Megabyte Schalter im
Abschnitt "[Betriebssysteme]" der BOOT.INI. Ansonsten dieses Bit
hat keine Wirkung. [Diese Option ist spezifisch für PE-gezielte Ports von
der Linker]

--disable-large-address-aware
Kehrt den Effekt eines vorherigen zurück --große-adress-bewusst .
Dies ist nützlich, wenn --große-adress-bewusst wird immer vom . eingestellt
Compiler-Treiber (zB Cygwin gcc) und die ausführbare Datei nicht
unterstützen virtuelle Adressen von mehr als 2 Gigabyte. [Diese Option
ist spezifisch für PE-gerichtete Ports des Linkers]

--MAJOR-Image-Version Wert
Legt die Major-Nummer der "Image-Version" fest. Standardmäßig auf 1.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--major-os-version Wert
Legt die Major-Nummer der "OS-Version" fest. Standardmäßig auf 4. [Dies
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--major-subsystem-version Wert
Setzt die Major-Nummer der "Subsystem-Version". Standardmäßig auf 4.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--minor-image-version Wert
Legt die Minor-Nummer der "Image-Version" fest. Standardmäßig auf 0.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--minor-os-version Wert
Legt die Minor-Nummer der "OS-Version" fest. Der Standardwert ist 0. [Dies
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--minor-subsystem-version Wert
Legt die Minor-Nummer der "Subsystem-Version" fest. Standardmäßig auf 0.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--output-def Datei
Der Linker erstellt die Datei Datei die eine DEF-Datei enthalten wird
entsprechend der DLL, die der Linker generiert. Diese DEF-Datei
(die "*.def" heißen sollte) kann verwendet werden, um einen Import zu erstellen
Bibliothek mit "dlltool" oder kann als Referenz auf . verwendet werden
automatisch oder implizit exportierte Symbole. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--out-implib Datei
Der Linker erstellt die Datei Datei die einen Import enthalten wird
lib, die der DLL entspricht, die der Linker generiert. Dieser Import
lib (die "*.dll.a" oder "*.a" heißen sollte, kann zum Verlinken verwendet werden
Clients gegen die generierte DLL; dieses Verhalten macht es möglich
um einen separaten Erstellungsschritt für die Importbibliothek "dlltool" zu überspringen. [Dies
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--enable-auto-image-base
--enable-auto-image-base=Wert
Wählen Sie automatisch die Image-Basis für DLLs, optional starten
mit Sockel Wert, es sei denn, man wird mit "--image-base" angegeben.
Streit. Durch die Verwendung eines Hashs, der aus dem DLL-Namen generiert wird, um zu erstellen
einzigartige Image-Basen für jede DLL, In-Memory-Kollisionen und
Verlagerungen, die die Programmausführung verzögern können, werden vermieden. [Dies
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--disable-auto-image-base
Generieren Sie nicht automatisch eine eindeutige Bilddatenbank. Wenn es keine gibt
benutzerdefinierten Bilddatenbank ("--image-base") dann die Plattform verwenden
Ursprünglich. [Diese Option ist spezifisch für den i386 PE-Zielport von
der Linker]

--dll-Suchpräfix Schnur
Beim dynamischen Verknüpfen mit einer DLL ohne Importbibliothek suchen Sie nach
zum " .dll" statt "lib .dll".
Dieses Verhalten ermöglicht eine einfache Unterscheidung zwischen DLLs, die für die
verschiedene "Subplattformen": native, cygwin, uwin, pw, etc. For
Instanz verwenden Cygwin-DLLs normalerweise "--dll-search-prefix=cyg".
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--enable-auto-import
Verknüpfen Sie "_symbol" mit "__imp__symbol" für DATA
Importe aus DLLs und erstellen Sie die erforderlichen Thunking-Symbole, wenn
Erstellen der Importbibliotheken mit diesen DATA-Exporten. Hinweis: Verwendung von
die Erweiterung 'auto-import' bewirkt, dass der Textabschnitt des
Bilddatei beschreibbar gemacht werden. Dies entspricht nicht der PE-
COFF-Formatspezifikation, veröffentlicht von Microsoft.

Hinweis - Die Verwendung der Erweiterung 'Auto-Import' führt auch dazu, dass nur gelesen wird
Daten, die normalerweise im .rdata-Abschnitt platziert werden
stattdessen in den .data-Abschnitt platziert. Das ist um zu funktionieren
um ein Problem mit consts, das hier beschrieben wird:
http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

Die Verwendung von 'Auto-Import' wird im Allgemeinen 'einfach funktionieren' - aber manchmal Sie
kann diese Meldung sehen:

"variable ' ' kann nicht automatisch importiert werden. Bitte lesen Sie die
Dokumentation für "--enable-auto-import" von ld für Details."

Diese Meldung tritt auf, wenn ein (Unter-)Ausdruck auf eine Adresse zugreift
letztlich gegeben durch die Summe zweier Konstanten (Win32-Importtabellen
nur eine zulassen). Zu den Fällen, in denen dies auftreten kann, gehören Zugriffe
auch in Memberfelder von Strukturvariablen, die aus einer DLL importiert wurden
wie die Verwendung eines konstanten Index in eine Array-Variable, die aus a importiert wurde
DLL. Jede Mehrwortvariable (Arrays, Structs, Long Long usw.) kann
diesen Fehlerzustand auslösen. Unabhängig von der genauen
Datentyp der anstößigen exportierten Variablen, ld wird immer erkennen
es, geben Sie die Warnung aus und beenden Sie.

Es gibt mehrere Möglichkeiten, dieses Problem zu lösen, unabhängig davon,
der Datentyp der exportierten Variablen:

Eine Möglichkeit besteht darin, den Schalter --enable-runtime-pseudo-reloc zu verwenden. Diese Blätter
die Aufgabe, Referenzen in Ihrem Client-Code für die Laufzeit anzupassen
Umgebung, daher funktioniert diese Methode nur, wenn die Laufzeitumgebung
unterstützt diese Funktion.

Eine zweite Lösung besteht darin, eine der 'Konstanten' zu zwingen, a . zu sein
variabel -- das heißt, zur Kompilierzeit unbekannt und nicht optimierbar.
Für Arrays gibt es zwei Möglichkeiten: a) Machen Sie den Indexee (den
Adresse des Arrays) eine Variable, oder b) den 'konstanten' Index machen a
Variable. Daher:

extern Typ extern_array[];
extern_array[1] -->
{ flüchtiger Typ *t=extern_array; t[1] }

or

extern Typ extern_array[];
extern_array[1] -->
{ flüchtig int t = 1; extern_array[t] }

Für Strukturen (und die meisten anderen Mehrwort-Datentypen) die einzige Option
besteht darin, die Struktur selbst zu erstellen (oder die lange lange oder die ...)
Variable:

externe Struktur s externe_Struktur;
extern_struct.field -->
{ flüchtige Struktur s *t=&extern_struct; t->Feld }

or

extern lang lang extern_ll;
extern_ll -->
{ volatile long long * local_ll=&extern_ll; *local_ll}

Eine dritte Methode, mit dieser Schwierigkeit umzugehen, besteht darin,
'auto-import' für das störende Symbol und markieren Sie es mit
"__declspec(dllimport)". In der Praxis erfordert dies jedoch die Verwendung
#defines zur Kompilierzeit, um anzugeben, ob Sie eine DLL erstellen,
Client-Code erstellen, der mit der DLL verknüpft wird, oder einfach
Erstellen/Verknüpfen mit einer statischen Bibliothek. Bei der Auswahl
zwischen den verschiedenen Methoden zur Auflösung der 'direkten Adresse mit
Problem des konstanten Offsets, sollten Sie die typische reale Welt berücksichtigen
Verwendung:

Original:

--foo.h
extern int arr[];
--foo.c
#include "foo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

Lösung 1:

--foo.h
extern int arr[];
--foo.c
#include "foo.h"
void main(int argc, char **argv){
/* Diese Problemumgehung gilt für win32 und cygwin; nicht "optimieren" */
flüchtig int *parr = arr;
printf("%d\n",parr[1]);
}

Lösung 2:

--foo.h
/* Hinweis: automatischer Export wird vorausgesetzt (kein __declspec(dllexport)) */
#if (definiert(_WIN32) || definiert(__CYGWIN__)) && \
!(definiert(FOO_BUILD_DLL) || definiert(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#else
#define FOO_IMPORT
#endif
extern FOO_IMPORT int arr[];
--foo.c
#include "foo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

Eine vierte Möglichkeit, dieses Problem zu vermeiden, besteht darin, Ihre Bibliothek neu zu codieren
Verwenden Sie eine funktionale Schnittstelle anstelle einer Datenschnittstelle für die
anstößige Variablen (zB set_foo() und get_foo() Accessor
Funktionen). [Diese Option ist spezifisch für den i386 PE-Zielport
des Linkers]

--disable-auto-import
Versuchen Sie nicht, "_symbol" raffiniert mit zu verknüpfen
"__imp__symbol" für DATA-Importe aus DLLs. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--enable-runtime-pseudo-reloc
Wenn Ihr Code Ausdrücke enthält, die in --enable-auto-import . beschrieben sind
Abschnitt, d. h. DATA-Importe aus DLL mit einem Offset ungleich Null, this
switch erstellt einen Vektor von 'Laufzeit-Pseudo-Verlagerungen', der
kann von der Laufzeitumgebung verwendet werden, um Verweise auf solche anzupassen
Daten in Ihrem Kundencode. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--disable-runtime-pseudo-reloc
Erstellen Sie keine Pseudo-Verlagerungen für DATEN-Importe, die nicht Null sind
von DLLs. [Diese Option ist spezifisch für den i386 PE-Zielport
des Linkers]

--eable-extra-pe-debug
Zeigen Sie zusätzliche Debug-Informationen im Zusammenhang mit Auto-Import-Symbolthunking an.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--Abschnittsausrichtung
Legt die Schnittausrichtung fest. Abschnitte im Speicher beginnen immer
an Adressen, die ein Vielfaches dieser Zahl sind. Standardmäßig auf
0x1000. [Diese Option ist spezifisch für den i386 PE-Zielport von
der Linker]

--Stapel Reserve
--Stapel Reserve,verpflichten
Geben Sie die Anzahl der zu reservierenden Bytes an (und optional
commit) als Stack für dieses Programm zu verwenden. Der Standardwert ist 2 MB
reserviert, 4K festgeschrieben. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--Teilsystem welche
--Teilsystem welche:Dur
--Teilsystem welche:Dur.Moll
Gibt das Subsystem an, unter dem Ihr Programm ausgeführt wird. Die
gesetzliche Werte für welche sind "native", "windows", "console", "posix",
und "xbox". Optional können Sie auch die Subsystemversion einstellen.
Numerische Werte werden auch akzeptiert für welche. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

Die folgenden Optionen setzen Flags im Feld "DllCharacteristics"
des PE-Datei-Headers: [Diese Optionen sind spezifisch für PE-Ziele
Ports des Linkers]

--high-entropy-va
Das Bild ist mit der Randomisierung des 64-Bit-Adressraum-Layouts kompatibel
(ASLR).

--dynamische Basis
Die Image-Basisadresse kann mithilfe des Adressraum-Layouts verschoben werden
Randomisierung (ASLR). Diese Funktion wurde mit MS Windows eingeführt
Vista für i386 PE-Ziele.

--forceinteg
Codeintegritätsprüfungen werden erzwungen.

--nxkompat
Das Image ist mit der Datenausführungsverhinderung kompatibel. Dies
Feature wurde mit MS Windows XP SP2 für i386 PE-Ziele eingeführt.

--keine-isolierung
Obwohl das Bild Isolation versteht, isolieren Sie das Bild nicht.

--nein-seh
Das Bild verwendet kein SEH. Daraus darf kein SE-Handler aufgerufen werden
Bild.

--no-bind
Dieses Bild nicht binden.

--wdmdriver
Der Treiber verwendet das MS Windows-Treibermodell.

--tsaware
Das Bild ist Terminalserver-fähig.

--insert-timestamp
--no-insert-timestamp
Fügen Sie einen echten Zeitstempel in das Bild ein. Dies ist die Standardeinstellung
Verhalten, da es mit Legacy-Code übereinstimmt und bedeutet, dass das Bild
funktioniert mit anderen, proprietären Tools. Das Problem damit
Standard ist, dass dies zu etwas anderen Bildern führt
produziert jedes Mal, wenn die gleichen Quellen verlinkt werden. Die Option
--no-insert-timestamp kann verwendet werden, um einen Nullwert für die
Zeitstempel, wodurch sichergestellt wird, dass Binärdateien aus identischen
Quellen werden identisch vergleichen.

Das C6X uClinux-Target verwendet ein binäres Format namens DSBT zur Unterstützung von
gemeinsam genutzte Bibliotheken. Jede gemeinsam genutzte Bibliothek im System muss über eine
eindeutiger Index; alle ausführbaren Dateien verwenden einen Index von 0.

--dsbt-Größe Größe
Diese Option setzt die Anzahl der Einträge im DSBT des aktuellen
ausführbare oder gemeinsam genutzte Bibliothek an Größe. Standardmäßig wird a . erstellt
Tabelle mit 64 Einträgen.

--dsbt-index Index
Diese Option legt den DSBT-Index der aktuellen ausführbaren oder freigegebenen Datei fest
Bibliothek zu Index. Der Standardwert ist 0, was für geeignet ist
ausführbare Dateien generieren. Wenn eine gemeinsam genutzte Bibliothek mit a . generiert wird
DSBT-Index von 0, die "R_C6000_DSBT_INDEX"-Relocs werden kopiert in
die Ausgabedatei.

Das --no-merge-exidx-Einträge Schalter deaktiviert das Zusammenführen von
angrenzende Exidx-Einträge in Frame-Abwicklungsinformationen.

Die Linker 68HC11 und 68HC12 unterstützen spezifische Optionen zur Steuerung der
Speicherbankwechselzuordnung und Trampolin-Code-Generierung.

--kein Trampolin
Diese Option deaktiviert die Trampolinerzeugung. Standardmäßig a
Trampolin wird für jede Far-Funktion generiert, die mit aufgerufen wird
eine "jsr"-Anweisung (dies geschieht, wenn ein Zeiger auf eine far-Funktion
genommen wird).

--Bankfenster Name
Diese Option zeigt dem Linker den Namen des Speicherbereichs an
in SPEICHER Spezifikation, die das Speicherbankfenster beschreibt.
Die Definition einer solchen Region wird dann vom Linker verwendet, um
Paging und Adressen innerhalb des Speicherfensters.

Die folgenden Optionen werden unterstützt, um die Handhabung von GOT . zu steuern
Generation beim Verknüpfen für 68K-Ziele.

--got=tippe
Diese Option teilt dem Linker mit, welches GOT-Generierungsschema verwendet werden soll.
tippe sollte einer von sein Single, Negativ, multigot or Ziel. For
mehr Informationen finden Sie im Info-Eintrag für ld.

Die folgenden Optionen werden unterstützt, um den microMIPS-Befehl zu steuern
Generierung beim Verknüpfen für MIPS-Ziele.

--insn32
--no-insn32
Diese Optionen steuern die Auswahl der microMIPS-Anweisungen, die in
Code, der vom Linker generiert wird, wie der in der PLT oder lazy
Binding Stubs oder in Entspannung. Wenn --insn32 verwendet wird, dann
Linker verwendet nur 32-Bit-Befehlskodierungen. Standardmäßig oder wenn
--no-insn32 verwendet wird, werden alle Befehlscodierungen verwendet, einschließlich
16-Bit, wenn möglich.

UMGEBUNG


Sie können das Verhalten von ändern ld mit den Umgebungsvariablen
"GNUTARGET", "LDEMULATION" und "COLLECT_NO_DEMANGLE".

"GNUTARGET" bestimmt das Objektformat der Eingabedatei, wenn Sie es nicht verwenden -b
(oder sein Synonym --Format). Sein Wert sollte einer der BFD-Namen sein
für ein Eingabeformat. Wenn in der Umgebung kein "GNUTARGET" vorhanden ist, ld
verwendet das natürliche Format des Ziels. Wenn "GNUTARGET" auf eingestellt ist
"default" dann versucht BFD, das Eingabeformat durch Untersuchen zu entdecken
binäre Eingabedateien; diese Methode ist oft erfolgreich, aber es gibt Potenzial
Mehrdeutigkeiten, da es keine Methode gibt, um sicherzustellen, dass die magische Zahl
zum Angeben von Objektdateiformaten verwendet wird, ist eindeutig. Allerdings ist die
Konfigurationsprozedur für BFD auf jedem System platziert die konventionelle
Format für dieses System zuerst in der Suchliste, daher sind Mehrdeutigkeiten
zugunsten der Konvention entschieden.

"LDEMULATION" bestimmt die Standardemulation, wenn Sie die -m
Möglichkeit. Die Emulation kann verschiedene Aspekte des Linker-Verhaltens beeinflussen,
insbesondere das Standard-Linker-Skript. Sie können die verfügbaren auflisten
Emulationen mit dem - ausführlich or -V Optionen. Wenn die -m Option ist nicht
verwendet und die Umgebungsvariable "LDEMULATION" ist nicht definiert, die
Die Standardemulation hängt davon ab, wie der Linker konfiguriert wurde.

Normalerweise verwendet der Linker standardmäßig die Entschlüsselung von Symbolen. Wie auch immer, wenn
"COLLECT_NO_DEMANGLE" wird in der Umgebung gesetzt, dann wird es standardmäßig
Symbole nicht zu entwirren. Diese Umgebungsvariable wird in a . verwendet
auf ähnliche Weise durch das Linker-Wrapper-Programm "gcc". Die Standardeinstellung kann
von der überschrieben werden --demangle und --no-demangle Optionen.

Verwenden Sie i686-linux-gnu-ld online mit den onworks.net-Diensten


Ad


Ad