EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

i686-linux-gnu-ld.bfd – Online in der Cloud

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

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

PROGRAMM:

NAME/FUNKTION


ld - Der GNU-Linker

ZUSAMMENFASSUNG


ld [Optionen] Objektdatei ...

BESCHREIBUNG


ld fasst mehrere Objekt- und Archivdateien zusammen und verlagert deren Daten
und verknüpft Symbolreferenzen. Normalerweise ist der letzte Schritt beim Kompilieren einer
Programm ausgeführt werden soll ld.

ld akzeptiert Linker Command Language-Dateien, die in einer Obermenge von geschrieben sind
Die Link-Editor-Befehlssprachensyntax von AT&T, um explizite und bereitzustellen
vollständige Kontrolle über den Verknüpfungsprozess.

Diese Manpage beschreibt nicht die Befehlssprache; siehe die ld Eintrag
Weitere Informationen zur Befehlssprache und zu anderen Aspekten finden Sie unter „Info“.
des GNU-Linkers.

Diese Version von ld Verwendet die allgemeinen 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“. Anders
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
sofortige Ausführung bei Auftreten eines Fehlers; wenn möglich, ld
wird weiterhin ausgeführt, sodass Sie andere Fehler identifizieren können (oder in einigen Fällen auch andere).
Fällen, um trotz des Fehlers eine Ausgabedatei zu erhalten).

Der GNU-Linker ld soll ein breites Spektrum an Situationen abdecken
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 tatsächlich
In der Praxis werden nur wenige davon in einem bestimmten Kontext verwendet. Zum Beispiel,
eine häufige Verwendung von ld besteht darin, Standard-Unix-Objektdateien auf einem zu verknüpfen
Standard, unterstütztes Unix-System. Auf einem solchen System, um eine Datei zu 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 Verlinkung
die Datei „/lib/crt0.o“ mit „hello.o“ und die Bibliothek „libc.a“, die
wird aus den Standardsuchverzeichnissen stammen. (Siehe die Diskussion von
-l Option unten.)

Einige der Befehlszeilenoptionen für ld kann jederzeit 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 durchgeführt
haben entweder keine weitere Auswirkung oder überschreiben frühere Vorkommnisse (diese
weiter links in der Befehlszeile) dieser Option. Optionen welche
sinnvollerweise mehrfach angegeben werden können, sind in der vermerkt
Beschreibungen unten.

Nicht-Optionsargumente sind Objektdateien oder Archive, die sein sollen
miteinander verbunden. Sie können folgen, vorangehen oder mit ihnen vermischt sein
Befehlszeilenoptionen, mit der Ausnahme, dass ein Objektdateiargument möglicherweise nicht vorhanden ist
wird zwischen einer Option und ihrem Argument platziert.

Normalerweise wird der Linker mit mindestens einer Objektdatei aufgerufen, außer Ihnen
kann mithilfe von andere Formen von binären Eingabedateien angeben -l, -Rund der
Skriptbefehlssprache. Wenn nicht binäre Eingabedateien überhaupt
angegeben, erzeugt der Linker keine Ausgabe und gibt die aus
Nachricht Nein Eingabe Dateien.

Wenn der Linker das Format einer Objektdatei nicht erkennen kann, wird er es tun
Gehen Sie davon aus, dass es sich um ein Linker-Skript handelt. Ein auf diese Weise spezifiziertes Skript
Erweitert das für den Link verwendete Haupt-Linker-Skript (entweder das Standard-Linker-Skript).
Linker-Skript oder das von using angegebene -T). Diese Funktion ermöglicht
Der Linker dient zum Verknüpfen mit einer Datei, die ein Objekt oder eine Datei zu sein scheint
Archiv, sondern definiert eigentlich nur einige Symbolwerte oder Verwendungen
„INPUT“ oder „GROUP“, um andere Objekte zu laden. Angabe eines Skripts darin
way erweitert lediglich das Haupt-Linker-Skript um die zusätzlichen Befehle
nach dem Hauptskript platziert; Benutze die -T Option zum Ersetzen der Standardeinstellung
Linker-Skript vollständig, beachten Sie jedoch die Auswirkung des Befehls „INSERT“.

Für Optionen, deren Namen aus einem einzelnen Buchstaben bestehen, müssen Optionsargumente angegeben werden
Folgen Sie entweder dem Optionsbuchstaben ohne dazwischen liegende Leerzeichen oder be
werden als separate Argumente direkt im Anschluss an die Option that angegeben
erfordert sie.

Für Optionen, deren Namen aus mehreren Buchstaben bestehen, entweder ein oder zwei Bindestriche
kann dem Optionsnamen vorangestellt werden; Zum Beispiel, -Spur-Symbol und
--trace-symbol sind gleichwertig. Hinweis: Hiervon gibt es eine Ausnahme
Regel. Mehrere Buchstabenoptionen, die mit einem Kleinbuchstaben „o“ beginnen, können möglich sein
Es dürfen nur zwei Bindestriche vorangestellt werden. Dies dient dazu, Verwirrung mit dem zu reduzieren
-o Möglichkeit. Also zum Beispiel -magisch setzt den Namen der Ausgabedatei auf Magie
während --omagisch Setzt das NMAGIC-Flag auf der Ausgabe.

Argumente für Optionen mit mehreren Buchstaben müssen entweder von der getrennt werden
Der Optionsname kann durch ein Gleichheitszeichen angegeben oder als separate Argumente angegeben werden
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 allen Linker-Befehlszeilenoptionen ein Präfix vorangestellt werden
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 ggf
Löschen Sie stillschweigend die Linker-Optionen, was zu einem fehlerhaften Link führt. Verwirrung
kann auch auftreten, wenn Optionen, die Werte erfordern, über a übergeben werden
Treiber, da die Verwendung eines Leerzeichens zwischen Option und Argument als a fungiert
Trennzeichen und bewirkt, dass der Treiber nur die Option an den Linker übergibt
und das Argument an den Compiler. In diesem Fall ist die Verwendung am einfachsten
die verbundenen Formen von Einzel- und Mehrbuchstabenoptionen, wie zum Beispiel:

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

Hier ist eine Tabelle der generischen Befehlszeilenschalter, die von 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
Das Argument muss einer der Strings sein Archiv, von Locals geführtes, 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 überprüft und wird auch nicht verwendet
DT_SONAME in der Bibliothek angegeben. Bei mehrfacher Angabe
„DT_AUDIT“ enthält eine durch Doppelpunkte getrennte Liste von Prüfschnittstellen
benutzen. Wenn der Linker ein Objekt mit einem Audit-Eintrag findet, während
Bei der Suche nach gemeinsam genutzten Bibliotheken wird eine entsprechende 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 nützlich
Intel 960-Architekturfamilie. Darin ld Konfiguration, die
Architektur Das Argument identifiziert die jeweilige Architektur im
960-Familie, wodurch einige Sicherheitsmaßnahmen aktiviert und die Archivierung geändert werden.
Suchpfad der Bibliothek.

Zukünftige Veröffentlichungen von ld unterstützt möglicherweise ähnliche Funktionen für andere
Architekturfamilien.

-b Eingabeformat
--format=Eingabeformat
ld kann so konfiguriert werden, dass mehr als eine Art von Objektdatei unterstützt wird.
Wenn dein ld auf diese Weise konfiguriert ist, können Sie die verwenden -b Option zu
Geben Sie das Binärformat für die folgenden Eingabeobjektdateien an
Option in der Befehlszeile. Sogar wenn ld ist zur Unterstützung konfiguriert
Bei alternativen Objektformaten müssen Sie dies normalerweise nicht angeben.
as ld sollte so konfiguriert sein, dass als Standardeingabeformat das erwartet wird
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 verknüpfen
ungewöhnliches Binärformat. Sie können auch verwenden -b um das Format zu wechseln
explizit (beim Verknüpfen von Objektdateien unterschiedlicher Formate), durch
einschließlich -b Eingabeformat vor jeder Gruppe von Objektdateien in a
bestimmtes Format.

Das Standardformat wird aus der Umgebungsvariablen übernommen
„GNUTARGET“.

Sie können das Eingabeformat auch mithilfe eines Skripts definieren
Befehl „TARGET“;

-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 „MRI-kompatible Skriptdateien“ von GNU ld
Dokumentation. Führen Sie MRT-Skriptdateien mit der Option ein -c;; verwenden
-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 von any angegebenen Verzeichnissen -L Optionen.

-d
-dc
-dp Diese drei Optionen sind gleichwertig; Es werden mehrere Formulare unterstützt
für Kompatibilität mit anderen Linkern. Sie weisen dem Gemeinsamen Raum zu
Symbole, auch wenn eine verschiebbare Ausgabedatei angegeben ist (mit -r).
Den gleichen Effekt hat der Script-Befehl „FORCE_COMMON_ALLOCATION“.

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

-e Eintrag
--Eintrag=Eintrag
Verwenden Sie die Eintrag als explizites Symbol für den Beginn der Ausführung Ihrer
Programm und nicht den Standardeinstiegspunkt. Wenn nein
Symbol benannt Eintrag, versucht der Linker zu analysieren Eintrag als Zahl,
und verwenden Sie diese als Eingangsadresse (die Nummer wird interpretiert).
in Basis 10; Sie können einen Vorspann 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 stammen sollten
automatisch exportiert werden. Die Bibliotheksnamen können durch getrennt werden
Kommas oder Doppelpunkte. Durch die Angabe von „--exclude-libs ALL“ werden Symbole ausgeschlossen
in allen Archivbibliotheken vom automatischen Export. Diese Option ist
Nur für den i386 PE-Zielport des Linkers und für verfügbar
ELF zielte auf Häfen ab. Für i386 PE sind die in a explizit aufgeführten Symbole
.def-Dateien werden unabhängig von dieser Option weiterhin exportiert. Für ELF
Zielports, von dieser Option betroffene Symbole werden als behandelt
versteckt.

--exclude-modules-for-implib Modulen,Modulen, ...
Gibt eine Liste von Objektdateien oder Archivmitgliedern an, aus denen
Symbole sollen nicht automatisch exportiert werden, welche aber schon
im Großhandel in die Importbibliothek kopiert, die während des generiert wird
Verknüpfung. Die Modulnamen können durch Kommas oder Doppelpunkte getrennt werden
muss genau mit den von verwendeten Dateinamen übereinstimmen ld um die Dateien zu öffnen; für
Archivmitglieder, dies ist einfach der Mitgliedsname, aber für Objekt
Dateien mit dem aufgeführten Namen müssen einen beliebigen Pfad enthalten und mit diesem genau übereinstimmen
Wird verwendet, um die Eingabedatei in der Befehlszeile des Linkers anzugeben. Das
Die Option ist nur für den i386 PE-Zielport des verfügbar
Linker. Symbole, die explizit in einer .def-Datei aufgeführt sind, sind weiterhin vorhanden
unabhängig von dieser Option exportiert.

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

Wenn Sie keine dieser Optionen verwenden (oder die
--no-export-dynamisch Option zum Wiederherstellen des Standardverhaltens), die
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, auf das verwiesen werden muss
zurück zu den vom Programm definierten Symbolen und nicht zu anderen
dynamisches Objekt, dann müssen Sie diese Option wahrscheinlich verwenden, wenn
Verknüpfung des Programms selbst.

Sie können die dynamische Liste auch 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 speziell für ELF-Zielports gilt. SPORT
Ziele unterstützen eine ähnliche Funktion zum Exportieren aller Symbole aus einer DLL
oder EXE; siehe die Beschreibung von --export-alle-symbole unten.

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

-DER Verknüpfen Sie Little-Endian-Objekte. Dies wirkt sich auf die Standardausgabe aus
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 das mit
Als Symbol sollte die Symboltabelle des Shared Object verwendet werden
Hilfsfilter für die Symboltabelle des gemeinsam genutzten Objekts Name.

Wenn Sie später ein Programm mit diesem Filterobjekt verknüpfen, wann
Wenn Sie das Programm ausführen, sieht der dynamische Linker DT_AUXILIARY
Feld. Wenn der dynamische Linker alle Symbole aus dem Filter auflöst
Objekt wird zunächst geprüft, ob eine Definition im vorhanden ist
gemeinsames Objekt Name. Wenn es eines gibt, wird es stattdessen verwendet
die Definition im Filterobjekt. Das freigegebene Objekt Name technische
nicht existieren. Also das gemeinsame Objekt Name kann verwendet werden, um eine bereitzustellen
alternative Implementierung bestimmter Funktionen, vielleicht für
Debugging oder für maschinenspezifische Leistung.

Diese Option kann mehr als einmal angegeben werden. Der DT_AUXILIARY
Einträge werden in der Reihenfolge erstellt, in der sie auf der 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 das mit
Die Symboltabelle des gemeinsam genutzten Objekts, das erstellt wird, sollte
als Filter für die Symboltabelle des gemeinsam genutzten Objekts verwendet werden Name.

Wenn Sie später ein Programm mit diesem Filterobjekt verknüpfen, wann
Wenn Sie das Programm ausführen, sieht der dynamische Linker den DT_FILTER
Feld. Der dynamische Linker löst Symbole entsprechend auf
Die Symboltabelle des Filterobjekts wird wie gewohnt angezeigt, tatsächlich wird sie jedoch verwendet
Link zu den im gemeinsamen Objekt gefundenen Definitionen Name. Und so kam es dass der
Mit dem Filterobjekt kann eine Teilmenge der Symbole ausgewählt werden
vom Objekt bereitgestellt Name.

Einige ältere Linker verwendeten die -F Option während einer Zusammenstellung
Toolchain zum Festlegen des Objektdateiformats für Eingabe und
Ausgabeobjektdateien. Der GNU-Linker nutzt hierfür andere Mechanismen
Zweck: die -b, --Format, --oformat Optionen, der Befehl „TARGET“.
in Linker-Skripten und die Umgebungsvariable „GNUTARGET“. Der
Der GNU-Linker ignoriert das -F Option, wenn kein ELF erstellt wird
gemeinsames Objekt.

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

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

-G Wert
--gpsize=Wert
Legen Sie die maximale Größe der zu optimierenden Objekte mithilfe des GP fest
Registrieren Sie sich bei Größe. Dies ist nur für Objektdateiformate sinnvoll
wie MIPS ELF, die das Einlegen großer und kleiner Objekte 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
gemeinsam genutztes Objekt, das ein DT_SONAME-Feld hat, dann wenn die ausführbare Datei
Beim Ausführen versucht der dynamische Linker, das gemeinsam genutzte Objekt zu laden
wird durch das Feld DT_SONAME angegeben und nicht durch die Verwendung der Datei
Name, der dem Linker gegeben wird.

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

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

-l Namensspezifikation
--Bibliothek=Namensspezifikation
Fügen Sie die durch . angegebene Archiv- oder Objektdatei hinzu Namensspezifikation zur Liste von
Dateien zum Verlinken. Diese Option kann beliebig oft verwendet werden. Wenn
Namensspezifikation ist von der Form :Dateiname, ld durchsucht den Bibliothekspfad
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 nach suchen
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
Gemäß der Konvention weist die Erweiterung „.so“ auf eine gemeinsam genutzte Bibliothek hin.) Hinweis
dass dieses Verhalten nicht zutrifft :Dateiname, was immer
gibt eine Datei mit dem Namen an Dateinamen.

Der Linker durchsucht ein Archiv nur einmal an der Stelle, an der es sich befindet
Es wird in der Befehlszeile angegeben. Wenn das Archiv a definiert
Symbol, das in einem Objekt, das vor dem erschien, undefiniert war
Archiv auf der Befehlszeile, der Linker schließt das ein
entsprechende(n) Datei(en) aus dem Archiv. Allerdings ein undefiniertes Symbol
in einem Objekt, das später in der Befehlszeile erscheint, führt nicht dazu, dass
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, dass es unter AIX anders ist als
das Verhalten des AIX-Linkers.

-L Suchverzeichnis
--Bibliothekspfad=Suchverzeichnis
Pfad hinzufügen Suchverzeichnis zur Liste der Pfade, die ld werde suchen
Archivbibliotheken und ld Steuerskripte. Sie können diese Option nutzen
beliebig oft. Die Verzeichnisse werden in der Reihenfolge durchsucht
die sie in der Befehlszeile angeben. Verzeichnisse
Die in der Befehlszeile angegebenen Befehle werden vor dem Standard durchsucht
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 vom Emulationsmodus ab ld verwendet, und in einigen Fällen auch
wie es konfiguriert wurde.

Die Pfade können auch in einem Link-Skript mit angegeben werden
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.

Besitzt das -m Wird die Option nicht verwendet, wird die Emulation aus dem übernommen
Umgebungsvariable „LDEMULATION“, sofern diese definiert ist.

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

-M
--Karte drucken
Drucken Sie eine Linkzuordnung zur Standardausgabe. Eine Linkkarte 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 des
Symbol, das dazu geführt hat, dass das Archivmitglied eingebracht wurde.

· Die den Symbolen zugewiesenen Werte.

Hinweis – Symbole, deren Werte durch einen Ausdruck berechnet werden, der
beinhaltet möglicherweise einen Verweis auf einen vorherigen Wert desselben Symbols
In der Link-Map wird kein korrektes Ergebnis angezeigt. Das ist
weil der Linker nur Zwischenergebnisse verwirft
behält den Endwert eines Ausdrucks bei. Unter solchen
Unter bestimmten 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)

See Ausdrücke Weitere Informationen zu Ausdrücken in
Linker-Skripte.

-n
--nmagie
Deaktivieren Sie die Seitenausrichtung von Abschnitten und deaktivieren Sie die Verknüpfung dazu
gemeinsam genutzte Bibliotheken. Wenn das Ausgabeformat Magie im Unix-Stil unterstützt
Wenn Sie Zahlen eingeben, markieren Sie die Ausgabe als „NMAGIC“.

-N
--omagisch
Stellen Sie die Text- und Datenabschnitte so ein, dass sie lesbar und beschreibbar sind. Auch,
Richten Sie das Datensegment nicht seitenmäßig aus und deaktivieren Sie die Verknüpfung
gemeinsam genutzte Bibliotheken. Wenn das Ausgabeformat Magie im Unix-Stil unterstützt
Wenn Sie Zahlen eingeben, markieren Sie die Ausgabe als „OMAGIC“. Hinweis: Obwohl beschreibbar
Der Textabschnitt ist für PE-COFF-Ziele zulässig, er entspricht jedoch nicht
die von Microsoft veröffentlichte Formatspezifikation.

--no-magic
Diese Option negiert die meisten Auswirkungen der -N Möglichkeit. Es setzt
Der Textabschnitt muss schreibgeschützt sein und das Datensegment wird erzwungen
Seitenausgerichtet. Hinweis: Diese Option ermöglicht keine Verknüpfung mit
gemeinsam genutzte Bibliotheken. Verwenden -Bdynamisch dafür.

-o Ausgabe
--ausgabe=Ausgabe
Verwenden Sie die Ausgabe als Name für das von . produzierte Programm ld; wenn das
Option ist nicht angegeben, der Name a.aus wird standardmäßig verwendet. Die
Mit dem Skriptbefehl „OUTPUT“ kann auch der Name der Ausgabedatei angegeben werden.

-O Grad des
If Grad des ist ein numerischer Wert größer als Null ld optimiert die
Ausgabe. 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 der gemeinsam genutzten ELF-Bibliothek.
Zukünftige Versionen des Linkers werden diese Option möglicherweise stärker nutzen.
Auch im Verhalten des Linkers gibt es derzeit keinen Unterschied
verschiedene Nicht-Null-Werte dieser Option. Auch dies kann sich ändern
mit zukünftigen Versionen.

--push-state
Das --push-state ermöglicht es, den aktuellen Status der Flags beizubehalten
die die Handhabung der Eingabedateien regeln, sodass sie alle sein können
mit einem entsprechenden restauriert --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-bened und -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 ggf. ständig 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 und stellt die vorherigen Werte von wieder her
die Flags, die die Verarbeitung von Eingabedateien regeln.

-q
--emit-relocs
Verschieben Sie Abschnitte und Inhalte in vollständig verknüpften ausführbaren Dateien.
Post-Link-Analyse- und Optimierungstools benötigen diese Informationen möglicherweise
um korrekte Änderungen an ausführbaren Dateien durchzuführen. Das
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
Generieren Sie eine verschiebbare Ausgabe, dh generieren Sie eine Ausgabedatei, die
kann wiederum als Input für dienen ld. Das wird oft genannt Teil-
Linking. Als Nebeneffekt in Umgebungen, die Standard unterstützen
Unix-Magiezahlen: Diese Option legt auch die Magie der Ausgabedatei fest
Nummer zu „OMAGIC“. Wenn diese Option nicht angegeben ist, ein absoluter Wert
Datei wird erstellt. Beim Verknüpfen von C++-Programmen ist diese Option werden wir nicht
Verweise auf Konstruktoren auflösen; Um das zu tun, verwenden Sie -Ur.

Wenn eine Eingabedatei nicht dasselbe Format wie die Ausgabe hat
Eine teilweise Verknüpfung wird nur unterstützt, wenn dies bei dieser Eingabedatei nicht der Fall ist
etwaige Umzüge enthalten. Verschiedene Ausgabeformate können weitere haben
Einschränkungen; Beispielsweise 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 Sie es oder fügen Sie es in die Ausgabe ein. Dies ermöglicht Ihre Ausgabe
Datei, um symbolisch auf definierte absolute Speicherorte zu verweisen
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 und nicht von einem Dateinamen
behandelt als -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 weg
Ausgabedatei.

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

-T Skriptdatei
--script=Skriptdatei
Verwenden Sie die Skriptdatei als Linker-Skript. Dieses Skript ersetzt ld's
Standard-Linker-Skript (anstatt etwas hinzuzufügen), also Befehlsdatei
muss alles angeben, was zur Beschreibung der Ausgabedatei erforderlich ist.
If Skriptdatei existiert im aktuellen Verzeichnis nicht, es sieht nach „ld“ aus
dafür in den oben genannten Verzeichnissen -L Optionen.
Mehrere -T Optionen akkumulieren.

-dT Skriptdatei
--default-script=Skriptdatei
Verwenden Sie die Skriptdatei als Standard-Linker-Skript.

Diese Option ähnelt der --Skript Option, außer dass
Die Verarbeitung des Skripts verzögert sich, bis der Rest abgeschlossen ist
Die Befehlszeile wurde verarbeitet. Dies ermöglicht Optionen, die danach platziert werden
--default-script Option in der Befehlszeile, um die
Verhalten des Linker-Skripts, das wichtig sein kann, wenn das
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 eingetragen werden
Symbol. Dies kann beispielsweise die Verlinkung zusätzlicher Inhalte auslösen
Module aus Standardbibliotheken. -u kann mit unterschiedlichen wiederholt werden
Optionsargumente zur Eingabe zusätzlicher undefinierter Symbole. Das
Option entspricht dem Linker-Skriptbefehl "EXTERN".

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

--require-definiert=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 dann einen Fehler aus und wird beendet.
Der gleiche Effekt kann in einem Linker-Skript durch die Verwendung erreicht werden
„EXTERN“, „ASSERT“ und „DEFINED“ zusammen. Diese Option kann genutzt werden
mehrmals, um zusätzliche Symbole zu erfordern.

-Ur Für alles andere als C++-Programme ist diese Option äquivalent zu
-r: Es generiert eine verschiebbare Ausgabe, dh eine Ausgabedatei, die dies kann
dienen wiederum als Input für ld. Beim Verknüpfen von C++-Programmen -Ur die
Referenzen auf Konstruktoren auflösen, im Gegensatz zu -r. Es funktioniert nicht
- -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. Ein verwaister Abschnitt ist einer
nicht ausdrücklich in einem Linker-Skript erwähnt.

MODE kann einen der folgenden Werte haben:

"Platz"
Verwaiste Abschnitte werden in einem geeigneten Ausgabeabschnitt platziert
Befolgen Sie die in beschriebene Strategie Waise Abschnittedem „Vermischten Geschmack“. Seine
zu erhalten --einzigartig wirkt sich auch darauf aus, wie Abschnitte platziert werden.

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

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

"Error"
Der Linker wird mit einer Fehlermeldung beendet, wenn ein verwaister Abschnitt vorhanden ist
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, der es nicht ist
ausdrücklich in einem Linker-Skript erwähnt. Sie können diese Option nutzen
mehrmals in der Befehlszeile; Es verhindert das normale Zusammenführen
von Eingabeabschnitten mit demselben Namen, der den Ausgabeabschnitt überschreibt
Zuweisungen in einem Linker-Skript.

-v
--Version
-V Anzeige der Versionsnummer für lddem „Vermischten Geschmack“. Seine -V Option listet auch die auf
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. Das
Die Option kann beliebig oft angegeben werden. Auf vielen Systemen ist es so
Es ist notwendig, einen Unterstrich voranzustellen.

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

-Y Weg
Speichern Weg zum Standardsuchpfad der Bibliothek. Diese Option besteht
für Solaris-Kompatibilität.

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

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

defs
Verbietet undefinierte Symbole in Objektdateien. Undefinierte Symbole
in gemeinsam genutzten Bibliotheken sind weiterhin zulässig.

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

globale
Diese Option ist nur beim Erstellen eines gemeinsam genutzten Objekts sinnvoll.
Es stellt die von diesem gemeinsamen Objekt definierten Symbole zur Verfügung
zur Symbolauflösung nachträglich geladener Bibliotheken.

initzuerst
Diese Option ist nur beim Erstellen eines gemeinsam genutzten Objekts sinnvoll.
Es markiert das Objekt, damit es zur Laufzeit initialisiert wird
treten vor der Laufzeitinitialisierung anderer Objekte auf
gleichzeitig in den Prozess eingebracht. Ebenso die
Die Laufzeitfinalisierung des Objekts erfolgt nach der Laufzeit
Finalisierung aller anderen Objekte.

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

faul
Markieren Sie beim Generieren einer ausführbaren Datei oder gemeinsam genutzten Bibliothek diese mit
Weisen Sie den dynamischen Linker an, die Auflösung des Funktionsaufrufs aufzuschieben
vielmehr der Punkt, an dem die Funktion aufgerufen wird (Lazy Binding).
als zur Ladezeit. Lazy Binding ist die Standardeinstellung.

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

Muldefs
Ermöglicht mehrere Definitionen.

nocombreloc
Deaktiviert die Kombination mehrerer Reloc-Abschnitte.

nocopyreloc
Deaktivieren Sie die vom Linker generierten .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, nach dessen Abhängigkeiten gesucht wird
Das Objekt ignoriert alle Standardsuchpfade der Bibliothek.

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 an Markieren Sie beim Generieren einer ausführbaren Datei oder gemeinsam genutzten Bibliothek diese mit
Weisen Sie den dynamischen Linker an, alle Symbole aufzulösen, wenn das Programm ausgeführt wird
gestartet wird oder wenn die gemeinsam genutzte Bibliothek mit der Verwendung verknüpft ist
dlopen, anstatt die Auflösung des Funktionsaufrufs auf den zu verschieben
Zeitpunkt, 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 ein ELF-Segment „PT_GNU_STACK“ an.
Die Angabe von Null überschreibt alle Standardgrößen ungleich Null
„PT_GNU_STACK“-Segmenterstellung.

Bundplt
Generieren Sie in PLT-Einträgen immer ein BND-Präfix. 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 Linker-Backend-Standardeinstellung.
Es kann verwendet werden, um fehlerhafte Umzüge zu umgehen
Vom Compiler generierte geschützte Datensymbole. Updates auf
Geschützte Datensymbole eines anderen Moduls sind für den nicht sichtbar
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 bei der indirekten Transformation die 1-Byte-NOP-Auffüllung an
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 uns 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 beides sein
explizite Dateinamen, oder -l Optionen.

Die angegebenen Archive werden wiederholt durchsucht, bis keine neuen vorhanden sind
Es entstehen undefinierte Referenzen. Normalerweise wird ein Archiv durchsucht
nur einmal in der Reihenfolge, in der es in der Befehlszeile angegeben wird.
Wenn ein Symbol in diesem Archiv benötigt wird, um ein undefiniertes Problem aufzulösen
Symbol, auf das ein Objekt in einem später erscheinenden Archiv verweist
In der Befehlszeile wäre der Linker nicht in der Lage, das aufzulösen
Referenz. Durch die Gruppierung der Archive können diese alle durchsucht werden
wiederholt, bis alle möglichen Referenzen aufgelöst sind.

Die Verwendung dieser Option ist mit erheblichen Leistungseinbußen verbunden. Es ist das beste
es nur zu verwenden, wenn es unvermeidbare Zirkelbezüge gibt
zwischen zwei oder mehr Archiven.

--accept-unknown-input-arch
--no-accept-unknown-input-arch
Weist den Linker an, Eingabedateien zu akzeptieren, deren Architektur nicht möglich ist
anerkannt. Es wird davon ausgegangen, dass der Benutzer weiß, was sie sind
tun und möchte diese unbekannten Eingabedateien bewusst einbinden.
Dies war das Standardverhalten des Linkers vor Version 2.14.
Das Standardverhalten ab Version 2.14 besteht darin, solche abzulehnen
Eingabedateien usw --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, die in der Befehlszeile erwähnt wird, unabhängig davon, ob die
ob die Bibliothek tatsächlich benötigt wird oder nicht. --wie benötigt verursacht ein DT_NEEDED
Tag soll nur für eine Bibliothek ausgegeben werden, die at zur Verbesserung der Gesundheitsgerechtigkeit Punkt in 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
erscheint in der Befehlszeile nachdem die betreffende Bibliothek nicht
beeinflussen, ob die Bibliothek als benötigt angesehen wird. Das ist ähnlich
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 veraltet
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. Dies ist nur sinnvoll
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. Sie können
Verwenden Sie diese Option mehrmals in der Befehlszeile: Sie wirkt sich aus
Bibliothek auf der Suche nach -l Optionen, die darauf folgen.

-Bgruppe
Setzen Sie das Flag „DF_1_GROUP“ im Eintrag „DT_FLAGS_1“ in der Dynamik
Abschnitt. Dies führt dazu, dass der Laufzeitlinker die darin enthaltenen Suchvorgänge verarbeitet
Das Objekt und seine Abhängigkeiten dürfen 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 mit gemeinsam genutzten Bibliotheken. Dies ist nur sinnvoll
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 es sich um eine gemeinsam genutzte Bibliothek handelt
erstellt werden, sondern alle externen Referenzen der Bibliothek
muss durch das Einlesen von Einträgen aus statischen Bibliotheken gelöst werden.

-Bsymbolisch
Binden Sie beim Erstellen einer gemeinsam genutzten Bibliothek Referenzen an globale Symbole
zur Definition innerhalb der gemeinsam genutzten Bibliothek, falls vorhanden. Normalerweise ist es
ist für ein Programm möglich, das mit einer gemeinsam genutzten Bibliothek verknüpft ist
Überschreiben Sie die Definition innerhalb der gemeinsam genutzten Bibliothek. Diese Option kann
auch mit dem verwendet werden --export-dynamisch Option, beim Erstellen einer
Positionieren Sie eine unabhängige ausführbare Datei, um Referenzen an globale zu binden
Symbole zur Definition innerhalb der ausführbaren Datei hinzufügen. Diese Option ist
nur auf ELF-Plattformen sinnvoll, die gemeinsam genutzte Bibliotheken unterstützen und
Positionieren Sie unabhängige ausführbare Dateien.

-Bsymbolische-Funktionen
Binden Sie beim Erstellen einer gemeinsam genutzten Bibliothek Verweise an globale Funktionen
Symbole zur Definition innerhalb der gemeinsam genutzten Bibliothek hinzufügen, falls vorhanden. Das
Option kann auch mit dem --export-dynamisch Option, wann
Erstellen einer positionsunabhängigen ausführbaren Datei, an die Referenzen gebunden werden können
globale Funktionssymbole zur Definition innerhalb der ausführbaren Datei hinzufügen.
Diese Option ist nur auf ELF-Plattformen sinnvoll, die dies unterstützen
Gemeinsam genutzte Bibliotheken und positionierungsunabhä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 gemeinsam genutzter Bibliotheken verwendet, um eine Liste von anzugeben
globale Symbole, deren Referenzen nicht an gebunden sein sollten
Definition innerhalb der gemeinsam genutzten Bibliothek oder dynamische Erstellung
verknüpfte ausführbare Dateien, um eine Liste der Symbole anzugeben, die sein sollen
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 ist dasselbe wie das des Versionsknotens
ohne Geltungsbereich und Knotennamen. Sehen VERSION um mehr zu erfahren.

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

--dynamic-list-cpp-new
Stellen Sie die integrierte dynamische Liste für die C++-Operatoren „new“ und „delete“ bereit.
Es ist hauptsächlich zum Erstellen gemeinsam genutzter libstdc++ nützlich.

--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 Abschnittsadressen nachträglich zu überprüfen
zugewiesen, um zu sehen, ob es Überschneidungen gibt. Normalerweise der Linker
führt diese Prüfung durch und führt sie durch, wenn es Überschneidungen findet
entsprechende Fehlermeldungen erzeugen. Der Linker weiß über und Bescheid
berücksichtigt Abschnitte in Overlays. Der Standard
Das Verhalten kann mithilfe des Befehlszeilenschalters wiederhergestellt werden
--check-sections. Abschnittsüberlappungen werden normalerweise nicht überprüft
verschiebbare Links. In diesem Fall können Sie die Überprüfung erzwingen, indem Sie verwenden
--check-sections .

--copy-dt-benötigt-Einträge
--no-copy-dt-benötigt-Einträge
Diese Option beeinflusst die Behandlung der genannten dynamischen Bibliotheken
durch DT_NEEDED-Tags innerhalb Auf der erwähnte dynamische ELF-Bibliotheken
Befehlszeile. Normalerweise fügt der Linker kein DT_NEEDED-Tag hinzu
Ausgabebinärdatei für jede Bibliothek, die in einem DT_NEEDED-Tag in einem erwähnt wird
dynamische Eingabebibliothek. Mit --copy-dt-benötigt-Einträge angegeben auf
Die Befehlszeile wird jedoch von allen darauf folgenden dynamischen Bibliotheken ausgeführt
Ihre DT_NEEDED-Einträge wurden 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
die in der Befehlszeile erwähnt werden, werden rekursiv durchsucht.
Folgen Sie ihren DT_NEEDED-Tags anderen Bibliotheken, um
Lösen Sie die für die Ausgabebinärdatei erforderlichen Symbole auf. Mit der Standardeinstellung
Einstellung jedoch der Suche nach dynamischen Bibliotheken, die darauf folgen
wird mit der dynamischen Bibliothek selbst aufhören. Es werden keine DT_NEEDED-Links angezeigt
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 so aussieht
bei Bedarf einfach durch ein Skript verarbeitet werden. Die Symbole sind gedruckt
sortiert nach Namen. Für jedes Symbol gibt es eine Liste mit Dateinamen
gegeben. Wenn das Symbol definiert ist, ist die erste aufgelistete Datei die
Ort der Definition. Wenn das Symbol als Common definiert ist
Geben Sie den Wert ein, werden als Nächstes alle Dateien angezeigt, in denen dies geschieht. Endlich welche
Dateien, die auf das Symbol verweisen, werden aufgelistet.

- nicht definieren-gemeinsam
Diese Option verhindert die Zuordnung von Adressen zu gemeinsamen Symbolen.
Den gleichen Effekt hat der Script-Befehl „INHIBIT_COMMON_ALLOCATION“.

Das - nicht definieren-gemeinsam Option ermöglicht die Entkopplung der Entscheidung
Weisen Sie den allgemeinen Symbolen aus der Auswahl des Ausgangs Adressen zu
Dateityp; andernfalls erzwingt ein nicht verschiebbarer Ausgabetyp die Zuweisung
Adressen zu gemeinsamen Symbolen. Benutzen - nicht definieren-gemeinsam erlaubt
Gemeinsame Symbole, auf die von einer gemeinsam genutzten Bibliothek aus verwiesen wird
zugewiesene Adressen nur im Hauptprogramm. Dadurch entfällt das
ungenutzten doppelten Speicherplatz in der gemeinsam genutzten Bibliothek und verhindert auch deren Entstehung
Mögliche Verwirrung darüber, ob dort das falsche Duplikat aufgelöst wird
Es gibt viele dynamische Module mit speziellen Suchpfaden für die Laufzeit
Symbolauflösung.

--defsym=Symbol=Ausdruck
Erstellen Sie in der Ausgabedatei ein globales Symbol, das das Absolute enthält
Adresse angegeben von Ausdruck. Sie können diese Option beliebig oft verwenden
nach Bedarf, um mehrere Symbole in der Befehlszeile zu definieren. A
Es wird eine eingeschränkte Form der Arithmetik unterstützt Ausdruck in diesem
Kontext: Sie können eine hexadezimale Konstante oder den Namen einer angeben
vorhandenes Symbol ein, oder verwenden Sie „+“ und „-“, um Hexadezimalzahlen 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 versehentlich entschlüsselt werden
Nachrichten und andere Ausgaben. Wenn der Linker aufgefordert wird, die Verbindung zu trennen, wird er
versucht, Symbolnamen lesbar darzustellen: Es wird entfernt
führende Unterstriche, wenn sie vom Objektdateiformat verwendet werden, und
Konvertiert C++-verstümmelte Symbolnamen in vom Benutzer lesbare 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 durch entschlüsselt
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. Dies ist nur sinnvoll, wenn
Generieren dynamisch verknüpfter ausführbarer ELF-Dateien. Die Standarddynamik
Linker ist normalerweise korrekt; Verwenden Sie dies nicht, es sei denn, Sie wissen, was Sie tun
sind dabei.

--no-dynamic-linker
Wenn Sie eine ausführbare Datei erstellen, lassen Sie die Anforderung einer dynamischen Datei weg
Linker, der zur Ladezeit verwendet werden soll. Dies ist nur für ELF von Bedeutung
ausführbare Dateien, die dynamische Verschiebungen enthalten, und erfordern normalerweise
Einstiegspunktcode, der diese Umzüge 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 keine hat
Mit dem Suffix „.exe“ oder „.dll“ zwingt diese Option den Linker, das zu kopieren
Ausgabedatei in eine gleichnamige Datei mit dem Suffix „.exe“ umwandeln. Das
Die Option ist nützlich, wenn Sie unveränderte Unix-Makefiles auf einem verwenden
Microsoft Windows-Host, da einige Windows-Versionen nicht ausgeführt werden
Es sei denn, es endet mit dem Suffix „.exe“.

--gc-Abschnitte
--no-gc-sections
Aktivieren Sie die Garbage Collection nicht verwendeter Eingabeabschnitte. Es wird ignoriert
auf Zielen, die diese Option nicht unterstützen. Das Standardverhalten
(diese Garbage Collection nicht durchzuführen) kann durch wiederhergestellt werden
spezifizieren --no-gc-sections auf der Kommandozeile. Beachten Sie diesen Müll
Die 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 Umzüge. Der Abschnitt, der das Eintragssymbol enthält
und alle Abschnitte, die in der Befehlszeile nicht definierte Symbole enthalten
wird beibehalten, ebenso wie Abschnitte, die Symbole enthalten, auf die verwiesen wird
dynamische Objekte. Beachten Sie, dass beim Erstellen gemeinsam genutzter Bibliotheken die
Der Linker muss davon ausgehen, dass auf jedes sichtbare Symbol verwiesen wird. Einmal
Dieser anfängliche Satz von Abschnitten wurde bestimmt, der Linker
Markiert rekursiv jeden Abschnitt, auf den verwiesen wird, als verwendet
Umzüge. Sehen --Eintrag und --nicht definiert.

Diese Option kann eingestellt werden, wenn eine Teilverknüpfung durchgeführt wird (aktiviert mit
zu erhalten -r). In diesem Fall muss die Symbolwurzel erhalten bleiben
explizit angegeben entweder durch eine --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 durch die Garbage Collection entfernt wurden. Die Auflistung ist
gedruckt auf stderr. Diese Option ist nur bei Müll wirksam
Die Sammlung wurde über die aktiviert --gc-Abschnitte) Möglichkeit. Der
Standardverhalten (die entfernten Abschnitte werden nicht aufgelistet)
kann durch Angabe wiederhergestellt werden --no-print-gc-sections auf Befehl
Linie.

--Druckausgabeformat
Geben Sie den Namen des Standardausgabeformats aus (möglicherweise beeinflusst durch
andere Befehlszeilenoptionen). Dies ist die Zeichenfolge, die angezeigt werden würde
in einem Linker-Skriptbefehl „OUTPUT_FORMAT“.

--Druckspeichernutzung
Verwendete Größe, Gesamtgröße und verwendete Größe der erstellten Speicherbereiche drucken
an. Nach der Installation können Sie HEIC-Dateien mit der SPEICHER Befehl. Dies ist bei eingebetteten Zielen nützlich
Verschaffen Sie sich einen schnellen Überblick über die Menge des freien Speichers. Das Format der
Die Ausgabe hat eine Überschrift und eine Zeile pro Region. Es ist beides 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 in der Standardausgabe
und verlassen.

--target-help
Drucken Sie eine Zusammenfassung aller zielspezifischen Optionen im Standard aus
Ausgabe und Ausgang.

-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 gegenüber der Speichernutzung, indem es zwischengespeichert wird
Symboltabellen der Eingabedateien im Speicher. Diese Option gibt Auskunft ld zu
Optimieren Sie stattdessen die Speichernutzung, indem Sie die Symboltabellen erneut lesen
wie nötig. Dies kann erforderlich sein, wenn ld Der Speicherplatz ist knapp
beim Verknüpfen einer großen ausführbaren Datei.

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

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

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

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

Die Gründe für das Zulassen undefinierter Symbolreferenzen in Shared
Zum Linkzeitpunkt angegebene Bibliotheken sind:

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

· Es gibt einige Betriebssysteme, z. B. BeOS und HPPA, wo
Undefinierte Symbole in gemeinsam genutzten Bibliotheken sind normal.

Der BeOS-Kernel patcht beispielsweise gemeinsam genutzte Bibliotheken beim Laden
Zeit, die für Sie am besten geeignete Funktion auszuwählen
aktuelle Architektur. Dies dient beispielsweise dazu
Wählen Sie dynamisch eine geeignete Memset-Funktion aus.

--keine-undefinierte-Version
Wenn ein Symbol eine undefinierte Version hat, wird dies normalerweise vom Linker der Fall sein
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
unversionierte 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, Eingaben miteinander zu verknüpfen
Dateien, die aus irgendeinem Grund nicht übereinstimmen, vielleicht weil sie
wurden für verschiedene Prozessoren oder für unterschiedliche kompiliert
Endiannesses. Diese Option gibt Auskunft ld dass es stillschweigend zulassen sollte
solche möglichen Fehler. Diese Option sollte nur mit Vorsicht verwendet werden,
in Fällen, in denen Sie besondere Maßnahmen ergriffen haben, die dies sicherstellen
Die Linkerfehler sind unangemessen.

--no-warn-search-mismatch
Normalerweise ld gibt eine Warnung aus, wenn eine inkompatible Bibliothek gefunden wird
während einer Bibliothekssuche. Diese Option unterdrückt die Warnung.

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

--noinhibit-exec
Behalten Sie die ausführbare Ausgabedatei bei, solange sie noch verwendbar ist.
Normalerweise erzeugt der Linker keine Ausgabedatei, wenn dies der Fall ist
stößt während des Linkvorgangs auf Fehler; es wird beendet, ohne zu schreiben
eine Ausgabedatei, wenn irgendeine Fehlermeldung ausgegeben wird.

-nostdlib
Durchsuchen Sie nur Bibliotheksverzeichnisse, die im Befehl explizit angegeben sind
Linie. In Linker-Skripten angegebene Bibliotheksverzeichnisse (einschließlich
In der Befehlszeile angegebene Linker-Skripte werden ignoriert.

--oformat=Ausgabeformat
ld kann so konfiguriert werden, dass mehr als eine Art von Objektdatei unterstützt wird.
Wenn dein ld auf diese Weise konfiguriert ist, können Sie die verwenden --oformat zu erhalten
um das Binärformat für die Ausgabeobjektdatei anzugeben. Sogar wenn
ld für die Unterstützung alternativer Objektformate konfiguriert ist, tun Sie dies nicht
Normalerweise muss dies angegeben werden, z 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
unterstützt von den BFD-Bibliotheken. (Sie können die verfügbaren Binärdateien auflisten
Formate mit objdump -i.) Der Script-Befehl „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 der Fall
unterstützt auf ELF-Plattformen. Positionsunabhängige ausführbare Dateien sind
ähnlich wie gemeinsam genutzte Bibliotheken, da sie von der verschoben werden
dynamischer Linker zur virtuellen Adresse, die das Betriebssystem für sie auswählt
(was je nach Aufruf variieren kann). Wie normal dynamisch
Verknüpfte ausführbare Dateien, in denen sie ausgeführt werden können, und Symbole, die in der definiert sind
Die 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 wenigen Zielen unterstützt.

Auf einigen Plattformen ist die --Entspannen Sie sich Option führt zielspezifische,
globale Optimierungen, die möglich werden, wenn der Linker aufgelöst wird
Adressierung im Programm, z. B. entspannende Adressmodi,
Synthese neuer Anweisungen, Auswahl kürzerer Versionen der aktuellen
Anweisungen und das Kombinieren konstanter Werte.

Auf einigen Plattformen können diese Linkzeit-Globaloptimierungen vorgenommen werden
Symbolisches Debuggen der resultierenden ausführbaren Datei unmöglich. Das ist
Dies gilt bekanntermaßen für die Matsushita MN10200- und MN10300-Familien
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
Wird 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 jeweils einem Symbolnamen
Linie. Diese Option ist besonders nützlich in Umgebungen (z. B
VxWorks), wo eine große globale Symboltabelle akkumuliert wird
schrittweise, um Laufzeitspeicher zu sparen.

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

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

-rPfad=dir
Fügen Sie dem Suchpfad der Laufzeitbibliothek ein Verzeichnis hinzu. Dies 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. Der -Pfad zu erhalten
wird auch beim Auffinden gemeinsam genutzter Objekte verwendet, die benötigt werden
freigegebene 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 beim Verknüpfen mit nicht verwendet
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. Unter SunOS ist standardmäßig
Der Linker bildet aus allen einen Laufzeitsuchpfad -L
Optionen gegeben ist. Wenn eine -Pfad Option verwendet wird, die Laufzeit
Der Suchpfad wird ausschließlich mit dem gebildet -Pfad Optionen,
Ignorieren der -L Optionen. Dies kann nützlich sein, wenn Sie gcc verwenden
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 und nicht von einem Dateinamen
behandelt als -Pfad .

-rpath-link=dir
Bei Verwendung von ELF oder SunOS erfordert eine gemeinsam genutzte Bibliothek möglicherweise eine andere.
Dies geschieht, wenn ein „ld -shared“-Link eine gemeinsam genutzte Bibliothek als enthält
eine der Eingabedateien.

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

Diese Option sollte mit Vorsicht verwendet werden, da sie die Suche außer Kraft setzt
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 Dateien 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 unter verwendet
Laufzeit, während die -rpath-link Option ist nur wirksam bei
Linkzeit. Suchen -Pfad auf diese Weise wird nur unterstützt von
Native Linker und Cross Linker, die konfiguriert wurden
an. Nach der Installation können Sie HEIC-Dateien mit der --with-sysroot .

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

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

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

6. Für einen nativen ELF-Linker sind die Verzeichnisse in „DT_RUNPATH“ bzw
„DT_RPATH“ einer gemeinsam genutzten Bibliothek werden nach gemeinsam genutzten Dateien durchsucht
benötigten Bibliotheken. Die „DT_RPATH“-Einträge werden ignoriert, wenn
Es sind „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, gibt der Linker ein Problem aus
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 ausgeführt
Erstellen Sie eine gemeinsam genutzte Bibliothek, wenn die -e Option wird nicht verwendet und es gibt sie
undefinierte Symbole im Link.

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

--sort-section=Name
Diese Option wendet „SORT_BY_NAME“ auf alle Platzhalterabschnitte an
Muster im Linker-Skript.

--sort-section=Ausrichtung
Diese Option wendet „SORT_BY_ALIGNMENT“ auf alle Platzhalterabschnitte an
Muster im Linker-Skript.

--Split-by-file[=Größe]
Ähnlich --Split-by-reloc erstellt aber einen neuen Ausgabeabschnitt für
jede Eingabedatei wann Größe ist erreicht. Größe Standardmäßig ist die Größe 1
falls nicht angegeben.

--split-by-reloc[=zählen]
Versucht, zusätzliche Abschnitte in der Ausgabedatei zu erstellen, damit nein
Ein einzelner Ausgabeabschnitt in der Datei enthält mehr als zählen
Umzüge. Dies ist nützlich, wenn Sie große verschiebbare Dateien erstellen
zum Herunterladen in bestimmte Echtzeitkernel mit dem COFF-Objekt
Datei Format; da COFF nicht mehr als 65535 darstellen kann
Umzüge in einem einzigen Abschnitt. Beachten Sie, dass dies nicht funktioniert
mit Objektdateiformaten, die keine beliebigen Abschnitte unterstützen.
Der Linker teilt die einzelnen Eingabeabschnitte nicht auf
Umverteilung, also wenn ein einzelner Eingabeabschnitt mehr als enthält
zählen Umzüge ein Ausgabeabschnitt wird so viele enthalten
Umzüge. zählen Der Standardwert ist 32768.

--Statistiken
Statistiken über den Betrieb des Linkers berechnen und anzeigen,
wie Ausführungszeit und Speichernutzung.

--sysroot=Verzeichnis
Verwenden Sie die Verzeichnis als Speicherort der Sysroot-Datei und überschreibt die
Standardeinstellung für die Konfigurationszeit. Diese Option wird nur von Linkern unterstützt
die mit konfiguriert wurden --with-sysroot.

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

Unter SunOS beispielsweise ld fasst doppelte Einträge im Symbol zusammen
String-Tabelle. Dies kann die Größe einer Ausgabedatei mit Full reduzieren
Debugging-Informationen um über 30 Prozent. Leider ist das SunOS
Das Programm „dbx“ kann das resultierende Programm nicht lesen („gdb“ hat keine
Problem). Der --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
Suchen Sie mehrere Abschnitte in der Befehlszeile. org muss ein Single sein
hexadezimale Ganzzahl; Aus Kompatibilitätsgründen mit anderen Linkern können Sie dies tun
den Anfang weglassen 0x normalerweise mit hexadezimalen Werten verbunden.
Hinweis: Es sollte kein Leerraum dazwischen sein Abteilungsname, der
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 festgelegt
erstes Byte des Textsegments.

-Trodata-Segment=org
Beim Erstellen einer ausführbaren ELF-Datei oder eines gemeinsam genutzten Objekts für ein Ziel, wo
Die schreibgeschützten Daten befinden sich in einem eigenen, vom Segment getrennten Segment
Wenn Sie den ausführbaren Text eingeben, wird die Adresse des ersten Bytes festgelegt
schreibgeschütztes Datensegment.

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

--unresolved-symbols=Methode
Bestimmen Sie, wie mit ungelösten Symbolen umgegangen wird. 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
Melden Sie ungelöste Symbole, die in Shared enthalten sind
Bibliotheken, aber ignorieren Sie sie, wenn sie von einem regulären Objekt stammen
Dateien.

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

Das Verhalten für gemeinsam genutzte Bibliotheken allein kann ebenfalls sein
gesteuert von der --[no-]allow-shlib-undefiniert .

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. Zeigt an, welche Eingabedateien geöffnet werden können und welche nicht.
Zeigt das Linker-Skript an, das vom Linker verwendet wird. Wenn das optional ist
NUMBER Argument > 1, der 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 gemeinsam genutzter Bibliotheken verwendet, um zusätzliche Angaben zu machen
Informationen zur 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
wird auf PE-Plattformen unterstützt, die Versionsskripte zum Filtern verwenden können
Symbolsichtbarkeit im Auto-Export-Modus: alle markierten Symbole aus einer regionalen 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 ermöglichen dies etwas schlampig
Dies ist bei Linkern auf einigen anderen Betriebssystemen jedoch nicht der Fall. Das
Mit dieser Option können Sie potenzielle Probleme bei der globalen Kombination finden
Symbole. Leider verwenden einige C-Bibliotheken diese Vorgehensweise, also Sie
Möglicherweise erhalten Sie einige Warnungen zu Symbolen in den Bibliotheken sowie in
Ihre Programme.

Es gibt drei Arten globaler Symbole, hier veranschaulicht durch C
Beispiele:

int i = 1;
Eine Definition, die in den Abschnitt mit den initialisierten Daten eingefügt wird
Ausgabedatei.

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

int i;
Ein gemeinsames Symbol. Wenn es nur (eine oder mehrere) gemeinsame gibt
Symbole für eine Variable werden in den nicht initialisierten Datenbereich verschoben
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 wird die größte Größe ausgewählt. Der Linker wird zu einem
gemeinsames Symbol in eine Deklaration, wenn es eine Definition von gibt
die gleiche Variable.

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

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

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

2. Ein gemeinsames Symbol in eine Referenz umwandeln, denn später
Es wird eine Definition für das Symbol gefunden. Das 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, mit Ausnahme der Symbole
werden in einer anderen Reihenfolge angetroffen.

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

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

--warn-multiple-gp
Warnen Sie, wenn in der Ausgabe mehrere globale Zeigerwerte erforderlich sind
Datei. Dies ist nur für bestimmte Prozessoren sinnvoll, z
Alpha. Insbesondere fügen einige Prozessoren Konstanten mit großen Werten ein
ein spezieller Abschnitt. Ein spezielles Register (der globale Zeiger) zeigt
in die Mitte dieses Abschnitts, damit Konstanten geladen werden können
effizient über einen Basisregister-relativen Adressierungsmodus. Seit
Der Offset im Basisregister-Relativmodus ist fest und relativ
Wenn sie klein ist (z. B. 16 Bit), begrenzt dies die maximale Größe der Konstante
Schwimmbad. Daher ist in großen Programmen häufig die Verwendung erforderlich
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
Warnen Sie nur einmal für jedes undefinierte Symbol und nicht einmal pro
Modul, das darauf verweist.

--warn-section-align
Warnen Sie, wenn die Adresse eines Ausgabeabschnitts aufgrund von geändert wird
Ausrichtung. Normalerweise wird die Ausrichtung durch eine Eingabe festgelegt
Abschnitt. Die Adresse wird nur geändert, wenn dies nicht explizit geschieht
angegeben; 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 ungelöstes Symbol melden wird (siehe
zu erhalten --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 bei der Generierung von Fehlern wiederhergestellt
wenn es ungelöste Symbole meldet.

- Ganzes Archiv
Für jedes Archiv, das in der Befehlszeile nach dem
- Ganzes Archiv Option: Fügen Sie jede Objektdatei in das Archiv ein
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, wodurch jedes Objekt in das Ergebnis einbezogen wird
Gemeinsame Bibliothek. Diese Option kann mehr als einmal verwendet werden.

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

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

Dies kann verwendet werden, um einen Wrapper für eine Systemfunktion bereitzustellen. Der
Die Wrapper-Funktion sollte „__wrap_“ heißen.Symbol". Wenn es möchte
Rufen Sie die Systemfunktion auf, sie sollte „__real_“ heißenSymbol".

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 Real auf
„malloc“-Funktion.

Möglicherweise möchten Sie auch eine „__real_malloc“-Funktion bereitstellen
Links ohne die --wickeln Option wird erfolgreich sein. Wenn Sie dies tun, Sie
sollte die Definition von „__real_malloc“ nicht in derselben Datei ablegen
als „__wrap_malloc“; Wenn Sie dies tun, kann der Assembler den Aufruf auflösen
bevor der Linker die Möglichkeit hat, es in „malloc“ zu verpacken.

--eh-frame-hdr
Fordern Sie die Erstellung des Abschnitts „.eh_frame_hdr“ und des ELF an
Segmentheader „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 beim Linker standardmäßig aktiviert
Generierte Abwicklungsinformationen werden unterstützt.

--eable-new-dtags
--disable-new-dtags
Dieser Linker kann die neuen dynamischen Tags in ELF erstellen. Aber je älter
ELF-Systeme verstehen sie möglicherweise nicht. 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
Legen Sie die Standardgröße der Hash-Tabellen des Linkers auf eine Primzahl fest
nah Anzahl. Durch Erhöhen dieses Werts kann die Länge verkürzt werden
Zeit, die der Linker benötigt, um seine Aufgaben auszuführen, auf Kosten von
Dadurch erhöht sich der Speicherbedarf des Linkers. 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 den klassischen ELF-Abschnitt „.hash“, „gnu“ für GNU im neuen Stil
„.gnu.hash“-Abschnitt oder „both“ sowohl für das klassische ELF „.hash“ als auch
neue GNU-Hash-Tabellen „.gnu.hash“. 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-Abschnitte debuggt werden
werden mit zlib komprimiert. --compress-debug-sections=keine nicht
DWARF-Debug-Abschnitte komprimieren. - Komfort-Debug-Sektionen = Zlib-GNU
Komprimiert DWARF-Debug-Abschnitte und benennt Debug-Abschnittsnamen in um
anfangen mit .zdebug statt .debuggen.
--compress-debug-sections=zlib und
--compress-debug-sections=zlib-gabi DWARF-Debug-Abschnitte komprimieren
mit SHF_COMPRESSED aus dem ELF ABI. Das Standardverhalten variiert
Abhängig vom beteiligten Ziel und den verwendeten Konfigurationsoptionen
um die Toolchain aufzubauen. Der Standardwert kann durch Prüfung ermittelt werden
die Ausgabe des Linkers --help .

--Reduzieren-Speicher-Overheads
Diese Option reduziert den Speicherbedarf zur LD-Laufzeit
Kosten der Verbindungsgeschwindigkeit. Dies wurde eingeführt, um das Alte 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 benötigt.

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

Das --Reduzieren-Speicher-Overheads Der 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
Zufallsbits, „sha1“, um einen 160-Bit-SHA1-Hash für die 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 im Hexadezimalformat angegeben ist
Ziffern („-“ und „:“ Zeichen zwischen Ziffernpaaren werden ignoriert).
If Stil weggelassen wird, wird "sha1" verwendet.

Die Stile „md5“ und „sha1“ erzeugen einen Bezeichner, der immer gültig ist
dasselbe in einer identischen Ausgabedatei, ist aber unter allen eindeutig
nichtidentische Ausgabedateien. Es ist nicht als Vergleich gedacht
Prüfsumme für den Inhalt der Datei. Eine verknüpfte Datei kann geändert werden
später durch andere Tools, aber die Build-ID-Bitzeichenfolge identifiziert die
Die ursprünglich verknüpfte Datei ändert sich nicht.

Übergeben von "keiner" für Stil deaktiviert die Einstellung von jedem „--build-id“
Optionen früher in der Befehlszeile.

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

Zusätzlich zu den Optionen, die allen Zielen gemeinsam sind, bietet der i386 PE-Linker
Unterstützt zusätzliche Befehlszeilenoptionen, die speziell für den i386 gelten
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 entfernt. [Diese Option ist spezifisch für
der auf i386 PE gerichtete Port des Linkers]

--base-Datei Datei
Verwenden Sie die Datei als Name einer Datei, in der die Basisadressen gespeichert werden sollen
aller Verschiebungen, die zum Generieren von DLLs erforderlich sind 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 „LIBRARY“ in einer bestimmten „.def“-Datei an. [Das
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
erlaubt die Verwendung von Abschnittsnamen mit mehr als acht Zeichen
normale Grenze für COFF. Standardmäßig sind diese Namen nur in zulässig
Objektdateien, da vollständig verknüpfte ausführbare Bilder das nicht enthalten
Zur Unterstützung der längeren Namen ist eine COFF-String-Tabelle erforderlich. Als GNU
Erweiterung ist es möglich, deren Verwendung in ausführbaren Bildern zuzulassen
auch, oder es (wahrscheinlich sinnlos!) im Objekt zu verbieten
Dateien, indem Sie diese beiden Optionen verwenden. Ausführbare Bilder generiert
Bei diesen langen Abschnittsnamen handelt es sich um etwas vom Standard abweichende Bezeichnungen
B. eine Zeichenfolgentabelle, und kann dabei zu einer verwirrenden Ausgabe führen
untersucht mit nicht GNU PE-fähigen Tools, wie z. B. Dateibetrachtern und
Kipper. GDB ist jedoch auf die Verwendung langer PE-Abschnittsnamen angewiesen
um Dwarf-2-Debug-Informationsabschnitte in einem ausführbaren Image zu finden
zur Laufzeit, und wenn keine der Optionen im Befehl angegeben ist,
Linie, ld aktiviert lange Abschnittsnamen und überschreibt die Standard- und
technisch korrektes Verhalten, wenn das Vorhandensein von Debug festgestellt wird
Informationen beim Verknüpfen eines ausführbaren Images und nicht beim Entfernen
Symbole. [Diese Option gilt für alle PE-Zielports des
Linker]

--enable-stdcall-fixup
--disable-stdcall-fixup
Wenn der Link ein Symbol findet, das nicht aufgelöst werden kann, wird ein Versuch unternommen
um eine „Fuzzy-Verknüpfung“ durchzuführen, indem nach einem anderen definierten Symbol gesucht wird
unterscheidet sich nur im Format des Symbolnamens (cdecl vs. stdcall)
und löst dieses Symbol auf, indem es mit der Übereinstimmung 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 verknüpft sein
Funktion „_bar“. Wenn der Linker dies tut, gibt er eine Warnung aus:
da die Verknüpfung normalerweise fehlschlagen sollte, manchmal aber auch der Import
Bibliotheken, die aus DLLs von Drittanbietern generiert wurden, benötigen diese Funktion möglicherweise
nutzbar 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
Abweichungen 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 lautet
in der Beschreibung des Ziels definiert. Mit dieser Option ist es möglich
Deaktivieren/aktivieren Sie das standardmäßige Unterstrichsymbol-Präfix.

--export-alle-symbole
Falls angegeben, alle globalen Symbole in den Objekten, die zum Erstellen einer DLL verwendet werden
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
Wenn Sie Funktionsattribute verwenden, wird standardmäßig nichts anderes exportiert
es sei denn, diese Option ist gegeben. Beachten Sie, dass die Symbole „DllMain@12“,
„DllEntryPoint@0“, „DllMainCRTStartup@12“ und „impure_ptr“ werden es tun
nicht automatisch exportiert werden. Auch von anderen importierte Symbole
DLLs werden nicht erneut exportiert, ebenso wenig wie Symbole, die die DLLs angeben
internes Layout, z. B. solche, die mit „_head_“ beginnen oder enden
mit „_iname“. Außerdem sind keine Symbole aus „libgcc“, „libstd++“,
„libmingw32“ oder „crtX.o“ werden exportiert. Symbole, deren Namen
mit „__rtti_“ oder „__builtin_“ beginnen, werden 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 angezeigt werden 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. [Das
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 Dateioffsets, die ein Vielfaches dieser Zahl sind. Dies ist die Standardeinstellung
bis 512. [Diese Option ist spezifisch für den i386 PE-Zielport von
der Linker]

--Haufen sowie das Hotel
--Haufen sowie das Hotel ,verpflichten
Geben Sie die Anzahl der zu reservierenden Speicherbytes an (und optional
commit), der als Heap für dieses Programm verwendet werden soll. 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 die Wert als Basisadresse Ihres Programms oder Ihrer DLL. Dies ist das
niedrigster Speicherort, der verwendet wird, wenn Ihr Programm oder Ihre DLL verwendet wird
geladen ist. Um die Notwendigkeit von Standortverlagerungen zu reduzieren und die Leistung zu verbessern
Von Ihren 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 den Symbolen entfernt
bevor sie exportiert werden. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--große-adress-bewusst
Falls angegeben, das entsprechende Bit im Feld „Eigenschaften“ des
Der COFF-Header wird gesetzt, um anzuzeigen, dass diese ausführbare Datei unterstützt
virtuelle Adressen größer als 2 Gigabyte. Dies sollte in verwendet werden
Verbindung mit /3GB oder /USERVA=Wert Megabyte wechseln in der
Abschnitt „[Betriebssysteme]“ der BOOT.INI. Ansonsten dieses Stück
hat keine Wirkung. [Diese Option ist spezifisch für PE-Zielports von
der Linker]

-Mit dem Disable-Large-Address-Awesare
Kehrt den Effekt eines vorherigen zurück --große-adress-bewusst .
Dies ist nützlich, wenn --große-adress-bewusst wird immer von der eingestellt
Compiler-Treiber (z. B. Cygwin gcc) und die ausführbare Datei nicht
unterstützen virtuelle Adressen mit mehr als 2 Gigabyte. [Diese Option
ist spezifisch für PE-gerichtete Ports des Linkers]

--MAJOR-Image-Version Wert
Legt die Hauptnummer der „Bildversion“ fest. Der Standardwert ist 1.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--major-os-version Wert
Legt die Hauptnummer der „Betriebssystemversion“ fest. Der Standardwert ist 4. [Dies
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--major-subsystem-version Wert
Legt die Hauptnummer der „Subsystemversion“ fest. Standardmäßig ist 4.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--minor-image-version Wert
Legt die Nebennummer der „Bildversion“ fest. Der Standardwert ist 0.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--minor-os-version Wert
Legt die Nebennummer der „Betriebssystemversion“ 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 Nebennummer der „Subsystemversion“ fest. Der Standardwert ist 0.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--output-def Datei
Der Linker erstellt die Datei Datei welches eine DEF-Datei enthalten wird
entsprechend der DLL, die der Linker generiert. Diese DEF-Datei
(die „*.def“ heißen sollte) kann zum Erstellen eines Imports verwendet werden
Bibliothek mit „dlltool“ oder kann als Referenz 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 Verknüpfen verwendet werden
Clients gegen die generierte DLL; Dieses Verhalten macht es möglich
um einen separaten Schritt zur Erstellung der „dlltool“-Importbibliothek zu überspringen. [Das
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 aus, optional starten
mit Sockel Wert, es sei denn, dies wird mit „--image-base“ angegeben.
Streit. Durch die Verwendung eines aus dem DLL-Namen generierten Hash zum Erstellen
einzigartige Bildbasen für jede DLL, In-Memory-Kollisionen und
Verschiebungen, die die Programmausführung verzögern können, werden vermieden. [Das
Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--disable-auto-image-base
Generieren Sie nicht automatisch eine eindeutige Bildbasis. Wenn nein
Benutzerdefinierte Bildbasis („--image-base“) verwenden Sie dann die Plattform
Standard. [Diese Option ist spezifisch für den i386 PE-Zielport von
der Linker]

--dll-Suchpräfix Schnur
Wenn Sie eine dynamische Verknüpfung zu einer DLL ohne Importbibliothek herstellen, suchen Sie
für " .dll“ anstelle von „lib .dll".
Dieses Verhalten ermöglicht eine einfache Unterscheidung zwischen DLLs, die für erstellt wurden
verschiedene „Subplattformen“: native, cygwin, uwin, pw usw. Für
Beispielsweise verwenden Cygwin-DLLs normalerweise „--dll-search-prefix=cyg“.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--enable-auto-import
Führen Sie eine anspruchsvolle Verknüpfung von „_symbol“ mit „__imp__symbol“ für DATA durch
Importe aus DLLs und erstellen Sie die erforderlichen Thunking-Symbole, wenn
Erstellen der Importbibliotheken mit diesen DATEN-Exporten. Hinweis: Verwendung von
Die Erweiterung „Auto-Import“ führt dazu, dass der Textabschnitt des
Bilddatei, die beschreibbar gemacht werden soll. Dies entspricht nicht der PE-
Von Microsoft veröffentlichte COFF-Formatspezifikation.

Hinweis: Die Verwendung der Erweiterung „Auto-Import“ führt ebenfalls zu einem schreibgeschützten Zugriff
Daten, die normalerweise im .rdata-Abschnitt platziert würden
stattdessen in den .data-Abschnitt eingefügt. Das ist, um zu funktionieren
um ein Problem mit Konstanten, 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 auch
Möglicherweise wird diese Meldung angezeigt:

„Variable“ kann nicht automatisch importiert werden. Bitte lesen Sie die
Weitere Informationen finden Sie in der Dokumentation zu lds „--enable-auto-import“.

Diese Meldung erscheint, wenn ein (Unter-)Ausdruck auf eine Adresse zugreift
letztlich gegeben durch die Summe zweier Konstanten (Win32-Importtabellen).
nur einen zulassen). Zu den Fällen, in denen dies auftreten kann, gehören Zugriffe
auch auf Mitgliedsfelder von Strukturvariablen, die aus einer DLL importiert wurden
als Verwendung eines konstanten Index in eine aus a importierte Array-Variable
DLL. Jede Mehrwortvariable (Arrays, Strukturen, Long Long usw.) kann
diesen Fehlerzustand auslösen. Allerdings unabhängig vom genauen
Der Datentyp der fehlerhaften exportierten Variablen wird von ld immer erkannt
Öffnen Sie es, geben Sie die Warnung aus und beenden Sie den Vorgang.

Unabhängig davon gibt es mehrere Möglichkeiten, dieses Problem anzugehen
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 zur Laufzeit anzupassen
Daher funktioniert diese Methode nur in der Laufzeitumgebung
unterstützt diese Funktion.

Eine zweite Lösung besteht darin, eine der „Konstanten“ zu a zu zwingen
Variable – also unbekannt und zur Kompilierungszeit nicht optimierbar.
Für Arrays gibt es zwei Möglichkeiten: a) Machen Sie den Indexee (den
Array-Adresse) eine Variable, oder b) machen Sie den 'konstanten' Index 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 (oder das Long-Long oder das ...) zu machen.
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, aufzugeben
Klicken Sie auf „Auto-Import“ für das fehlerhafte Symbol und markieren Sie es mit
„__declspec(dllimport)“. In der Praxis erfordert dies jedoch die Verwendung
#defines zur Kompilierungszeit, um anzugeben, ob Sie eine DLL erstellen.
Erstellen von Client-Code, der mit der DLL verknüpft wird, oder einfach nur
Erstellen/Verknüpfen mit einer statischen Bibliothek. Bei der Wahl
zwischen den verschiedenen Methoden zur Auflösung der „direkten Adresse mit“.
Wenn Sie das Problem „Konstanter Offset“ lösen, sollten Sie ein typisches reales Problem 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 dafür eine funktionale Schnittstelle anstelle einer Datenschnittstelle
beleidigende Variablen (z 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, eine komplexe Verknüpfung von „_symbol“ herzustellen
„__imp__symbol“ für DATEN-Importe aus DLLs. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--enable-runtime-pseudo-reloc
Wenn Ihr Code in --enable-auto-import beschriebene Ausdrücke enthält
Abschnitt, das heißt, DATA-Importe aus DLL mit einem Offset ungleich Null, this
Der Schalter erstellt einen Vektor von „Laufzeit-Pseudoverschiebungen“, der
kann von der Laufzeitumgebung verwendet werden, um Referenzen darauf anzupassen
Daten in Ihrem Client-Code. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--disable-runtime-pseudo-reloc
Erstellen Sie keine Pseudoverschiebungen für Datenimporte mit einem Offset ungleich Null
aus DLLs. [Diese Option ist spezifisch für den i386 PE-Zielport
des Linkers]

--eable-extra-pe-debug
Zeigt zusätzliche Debug-Informationen zum automatischen Importieren von Symbol-Thunking an.
[Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

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

--Stapel sowie das Hotel
--Stapel sowie das Hotel ,verpflichten
Geben Sie die Anzahl der zu reservierenden Speicherbytes an (und optional
commit), der als Stack für dieses Programm verwendet werden soll. 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. Der
gesetzliche Werte für welche sind „native“, „windows“, „console“, „posix“,
und „xbox“. Optional können Sie auch die Subsystemversion festlegen.
Es werden auch numerische Werte akzeptiert 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 64-Bit-Adressraum-Layout-Randomisierung kompatibel
(ASLR).

--dynamische Basis
Die Bildbasisadresse kann mithilfe des Adressraumlayouts 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 Data Execution Prevention kompatibel. Das
Die Funktion 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. Von hier aus 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 dabei
Die Standardeinstellung ist, dass dadurch leicht unterschiedliche Bilder entstehen
produziert jedes Mal, wenn die gleichen Quellen verlinkt werden. Die Option
--no-insert-timestamp kann verwendet werden, um einen Nullwert für einzufügen
Zeitstempel, wodurch sichergestellt wird, dass Binärdateien aus identischen Dateien erstellt werden
Quellen werden identisch vergleichen.

Das C6X-uClinux-Ziel verwendet zur Unterstützung ein Binärformat namens DSBT
gemeinsam genutzte Bibliotheken. Jede gemeinsam genutzte Bibliothek im System muss über eine verfügen
eindeutiger Index; Alle ausführbaren Dateien verwenden einen Index von 0.

--dsbt-Größe Größe
Diese Option legt die Anzahl der Einträge im DSBT des aktuellen fest
ausführbare Datei oder gemeinsam genutzte Bibliothek Größe. Standardmäßig wird eine 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
Generieren ausführbarer Dateien. Wenn eine gemeinsam genutzte Bibliothek mit a generiert wird
Wenn der DSBT-Index 0 ist, werden die „R_C6000_DSBT_INDEX“-Relocats kopiert
die Ausgabedatei.

Das --no-merge-exidx-Einträge Der Schalter deaktiviert die Zusammenführung von
Benachbarte Exidx-Einträge in Frame-Unwind-Info.

Die Linker 68HC11 und 68HC12 unterstützen spezifische Optionen zur Steuerung
Speicherbank-Umschaltzuordnung und Trampolincode-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 gibt dem Linker den Namen des Speicherbereichs an
der SPEICHER Spezifikation, die das Speicherbankfenster beschreibt.
Die Definition einer solchen Region wird dann vom Linker zur Berechnung verwendet
Paging und Adressen innerhalb des Speicherfensters.

Die folgenden Optionen werden unterstützt, um die Handhabung von GOT zu steuern
Generierung 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
Weitere Informationen finden Sie im Info-Eintrag für ld.

Die folgenden Optionen werden zur Steuerung von microMIPS-Anweisungen unterstützt
Generierung beim Verknüpfen für MIPS-Ziele.

--insn32
--no-insn32
Diese Optionen steuern die Auswahl der verwendeten microMIPS-Anweisungen
Vom Linker generierter Code, z. B. der im PLT oder Lazy
Bindungsstummel oder in Entspannung. Wenn --insn32 verwendet wird, dann
Der Linker verwendet nur 32-Bit-Befehlskodierungen. Standardmäßig oder wenn
--no-insn32 verwendet wird, werden alle Befehlskodierungen verwendet, einschließlich
16-Bit-Versionen, wenn möglich.


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
„Standard“, dann versucht BFD, das Eingabeformat durch Prüfung zu ermitteln
binäre Eingabedateien; Diese Methode ist oft erfolgreich, aber es gibt Potenzial
Mehrdeutigkeiten, da es keine Methode gibt, um sicherzustellen, dass die magische Zahl vorliegt
zur Angabe von Objektdateiformaten verwendet wird, ist eindeutig. Allerdings ist die
Das Konfigurationsverfahren für BFD auf jedem System ist das herkömmliche
Das Format für dieses System steht in der Suchliste an erster Stelle, sodass Unklarheiten bestehen
zugunsten der Konvention beschlossen.

"LDEMULATION" bestimmt die Standardemulation, wenn Sie die -m
Möglichkeit. Die Emulation kann verschiedene Aspekte des Linkerverhaltens 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 wird und die Umgebungsvariable „LDEMULATION“ nicht definiert ist, wird 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“ ist in der Umgebung festgelegt und wird dann als Standard verwendet
um Symbole nicht zu entwirren. Diese Umgebungsvariable wird in a verwendet
auf ähnliche Weise durch das Linker-Wrapper-Programm „gcc“. Die Standardeinstellung kann sein
von der überschrieben werden --demangle und -No-Demangle Optionen.

Verwenden Sie i686-linux-gnu-ld.bfd online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad