EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

h8300-hms-ld – Online in der Cloud

Führen Sie h8300-hms-ld beim kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl h8300-hms-ld, 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 - Verwenden von LD, dem GNU-Linker

ZUSAMMENFASSUNG


ld [Optionen] Objektdatei ...

BESCHREIBUNG


ld fasst mehrere Objekt- und Archivdateien zusammen, verschiebt deren Daten und bindet Symbol
Verweise. Normalerweise ist der letzte Schritt beim Kompilieren eines Programms die Ausführung ld.

ld akzeptiert Linker Command Language-Dateien, die in einer Obermenge des Link-Editors von AT&T geschrieben wurden
Befehlssprachensyntax, um eine explizite und vollständige Kontrolle über den Verknüpfungsprozess zu ermöglichen.

Diese Manpage beschreibt nicht die Befehlssprache; siehe die ld Eintrag in "info", oder die
manual ld: der GNU-Linker, für vollständige Details zur Befehlssprache und zu anderen Aspekten
des GNU-Linkers.

Diese Version von ld verwendet die universellen BFD-Bibliotheken, um mit Objektdateien zu arbeiten. Dies
erlaubt ld zum Lesen, Kombinieren und Schreiben von Objektdateien in vielen verschiedenen Formaten---für
B. COFF oder "a.out". Verschiedene Formate können miteinander verknüpft werden, um beliebige zu produzieren
verfügbare Art der Objektdatei.

Abgesehen von seiner Flexibilität ist der GNU-Linker hilfreicher als andere Linker bei der Bereitstellung von
diagnostische Informationen. Viele Linker brechen die Ausführung sofort ab, wenn sie auf ein
Error; wenn möglich, ld wird weiter ausgeführt, sodass Sie andere Fehler identifizieren können
(oder in einigen Fällen, um trotz des Fehlers eine Ausgabedatei zu erhalten).

Der GNU-Linker ld soll ein breites Spektrum an Situationen abdecken und möglichst kompatibel sein
wie möglich mit anderen Linkern. Infolgedessen haben Sie viele Möglichkeiten, seine
Verhalten.

OPTIONAL


Der Linker unterstützt eine Vielzahl von Befehlszeilenoptionen, aber in der Praxis nur wenige davon
werden in einem bestimmten Kontext verwendet. Zum Beispiel eine häufige Verwendung von ld ist zu verlinken
Standard-Unix-Objektdateien auf einem standardmäßigen, unterstützten Unix-System. Auf einem solchen System zu
eine Datei "hello.o" verlinken:

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

Das sagt ld um eine Datei namens . zu erzeugen Ausgabe als Ergebnis der Verlinkung der Datei
"/lib/crt0.o" mit "hello.o" und der Bibliothek "libc.a", die aus dem Standard kommen wird
Verzeichnisse durchsuchen. (Siehe die Diskussion der -l Option unten.)

Einige der Befehlszeilenoptionen für ld kann an jeder Stelle in der Befehlszeile angegeben werden.
Optionen, die sich auf Dateien beziehen, wie z -l or -T, veranlassen Sie, dass die Datei an der
Punkt, an dem die Option in der Befehlszeile erscheint, relativ zu den Objektdateien und
andere Dateioptionen. Das Wiederholen von Nicht-Datei-Optionen mit einem anderen Argument hat entweder
keine weiteren Auswirkungen oder überschreiben frühere Vorkommnisse (die weiter links auf dem Befehl
Zeile) dieser Option. Optionen, die sinnvollerweise mehrfach angegeben werden können, sind
in den Beschreibungen unten vermerkt.

Nicht-Optionsargumente sind Objektdateien oder Archive, die miteinander verknüpft werden sollen. Sie
kann folgen, vorangehen oder mit Befehlszeilenoptionen gemischt werden, außer dass eine Objektdatei
Argument darf nicht zwischen einer Option und ihrem Argument stehen.

Normalerweise wird der Linker mit mindestens einer Objektdatei aufgerufen, aber Sie können auch andere angeben
Formen von binären Eingabedateien mit -l, -R, und die Skriptbefehlssprache. Wenn nicht binär
Eingabedateien überhaupt angegeben sind, erzeugt der Linker keine Ausgabe und gibt die
Nachricht Nein Eingabe Dateien.

Wenn der Linker das Format einer Objektdatei nicht erkennen kann, geht er davon aus, dass es sich um eine Datei handelt
Linker-Skript. Ein auf diese Weise spezifiziertes Skript ergänzt das Haupt-Linker-Skript, das für verwendet wird
den Link (entweder das Standard-Linker-Skript oder das mit -T). Dies
Die Funktion ermöglicht es dem Linker, auf eine Datei zu verlinken, die ein Objekt oder eine Datei zu sein scheint
Archiv, sondern definiert eigentlich nur einige Symbolwerte oder verwendet "INPUT" oder "GROUP", um
andere Objekte laden. Beachten Sie, dass die Angabe eines Skripts auf diese Weise lediglich das main erweitert
Linker-Skript; benutze die -T Option, um das Standard-Linker-Skript vollständig zu ersetzen.

Bei Optionen, deren Namen aus einem einzelnen Buchstaben bestehen, müssen Optionsargumente entweder dem
Optionsbuchstabe ohne dazwischenliegende Leerzeichen oder als separate Argumente
unmittelbar nach der Option, die sie erfordert.

Bei Optionen, deren Namen aus mehreren Buchstaben bestehen, können entweder ein oder zwei Bindestriche vor dem
Optionsname; zum Beispiel, -Spur-Symbol und --trace-symbol sind gleichwertig. Hinweis---da
ist eine Ausnahme von dieser Regel. Mehrere Buchstabenoptionen, die mit einem Kleinbuchstaben 'o' beginnen
können nur durch zwei Striche vorangestellt werden. Dies soll Verwechslungen mit den -o Möglichkeit. So
z.B. -magisch setzt den Namen der Ausgabedatei auf Magie während --omagisch setzt die NMAGIC
Flag am Ausgang.

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

Hinweis---wenn der Linker indirekt über einen Compiler-Treiber aufgerufen wird (zB gcc) dann
allen Linker-Befehlszeilenoptionen sollte vorangestellt werden -WL, (oder was auch immer passend ist
für den jeweiligen Compiler-Treiber) wie folgt:

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

Dies ist wichtig, da sonst das Compiler-Treiberprogramm die
Linker-Optionen, was zu einem schlechten Link führt.

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

-aStichwort
Diese Option wird aus Gründen der HP/UX-Kompatibilität unterstützt. Die Stichwort Argument muss eines von sein
die Saiten 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. Dies
Option kann beliebig oft verwendet werden.

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

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

-b Eingabeformat
--format=Eingabeformat
ld kann konfiguriert werden, um mehr als eine Art von Objektdatei zu unterstützen. Wenn dein ld is
so konfiguriert, können Sie die -b Option zur Angabe des Binärformats für die Eingabe
Objektdateien, die dieser Option in der Befehlszeile folgen. Sogar wenn ld ist konfiguriert
Um alternative Objektformate zu unterstützen, müssen Sie dies normalerweise nicht angeben, da ld
sollte so konfiguriert sein, dass als Standardeingabeformat jeweils das gängigste Format erwartet wird
Maschine. Eingabeformat ist eine Textzeichenfolge, der Name eines bestimmten Formats, das von . unterstützt wird
die BFD-Bibliotheken. (Sie können die verfügbaren Binärformate mit auflisten objdump -i.)

Sie können diese Option verwenden, wenn Sie Dateien mit einer ungewöhnlichen Binärdatei verknüpfen
Format. Sie können auch verwenden -b Formate explizit wechseln (beim Verlinken von Objektdateien
verschiedener Formate), indem Sie -b Eingabeformat vor jeder Gruppe von Objektdateien
in einem bestimmten Format.

Das Standardformat wird der Umgebungsvariablen "GNUTARGET" entnommen.

Sie können das Eingabeformat auch aus einem Skript heraus definieren, indem Sie den Befehl "TARGET" verwenden;

-c MRT-Befehlsdatei
--mri-script=MRT-Befehlsdatei
Zur Kompatibilität mit durch MRT erzeugten Linkern, ld akzeptiert Skriptdateien, die in an . geschrieben sind
alternative, eingeschränkte Befehlssprache, beschrieben in den MRT-kompatiblen Skriptdateien
Abschnitt der GNU ld-Dokumentation. Einführung von MRT-Skriptdateien mit der Option -c;; verwenden
-T Option zum Ausführen von Linker-Skripten, die im Allzweck-Skript geschrieben sind ld Scripting
Sprache. Wenn MRT-cmdfile ist nicht vorhanden, ld sucht es in den angegebenen Verzeichnissen
von jedem -L Optionen.

-d
-dc
-dp Diese drei Optionen sind gleichwertig; mehrere Formulare werden aus Kompatibilitätsgründen unterstützt
mit anderen Linkern. Sie weisen gemeinsamen Symbolen Platz zu, auch wenn ein verschiebbarer Ausgang
Datei wird angegeben (mit -r). Der Skriptbefehl "FORCE_COMMON_ALLOCATION" hat die
gleiche Wirkung.

-e Eintrag
--Eintrag=Eintrag
Verwenden Sie die Eintrag als explizites Symbol für den Beginn der Ausführung Ihres Programms, anstatt
der Standardeinstiegspunkt. Wenn kein Symbol benannt ist Eintrag, der Linker wird es versuchen
parsen Eintrag als Nummer und verwenden Sie diese als Eingangsadresse (die Nummer wird
interpretiert in Basis 10; du darfst ein führendes verwenden 0x für Basis 16 oder eine führende 0 für Basis
8).

--exclude-libs lib,lib, ...
Gibt eine Liste von Archivbibliotheken an, aus denen Symbole nicht automatisch entnommen werden sollen
exportiert. Die Bibliotheksnamen können durch Kommas oder Doppelpunkte getrennt werden. Angabe
"--exclude-libs ALL" schließt Symbole in allen Archivbibliotheken vom automatischen Export aus.
Diese Option ist nur für den i386 PE-Zielport des Linkers und für ELF . verfügbar
gezielte Häfen. Für i386 PE sind die explizit in einer .def-Datei aufgeführten Symbole immer noch
exportiert, unabhängig von dieser Option. Für ELF-gerichtete Ports, davon betroffene Symbole
Option wird als ausgeblendet behandelt.

-E
--export-dynamisch
Fügen Sie beim Erstellen einer dynamisch verknüpften ausführbaren Datei alle Symbole zum dynamischen Symbol hinzu
Tisch. Die dynamische Symboltabelle ist der Satz von Symbolen, die von dynamischen . aus sichtbar sind
Objekte zur Laufzeit.

Wenn Sie diese Option nicht verwenden, enthält die dynamische Symboltabelle normalerweise nur
die Symbole, die von einem im Link erwähnten dynamischen Objekt referenziert werden.

Wenn Sie "dlopen" verwenden, um ein dynamisches Objekt zu laden, das auf die Symbole zurückgreifen muss
vom Programm definiert als ein anderes dynamisches Objekt, dann werden Sie wahrscheinlich
müssen Sie diese Option verwenden, wenn Sie das Programm selbst verknüpfen.

Sie können auch das Versionsskript verwenden, um zu steuern, welche Symbole zum . hinzugefügt werden sollen
dynamische Symboltabelle, wenn das Ausgabeformat dies unterstützt. Siehe die Beschreibung von
--version-script in @ref{VERSION}.

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

-DER Verknüpfen Sie Little-Endian-Objekte. Dies betrifft das Standardausgabeformat.

-f
--Hilfs Name
Setzen Sie beim Erstellen eines gemeinsam genutzten ELF-Objekts das interne Feld DT_AUXILIARY auf den
angegebenen Namen. Dies teilt dem dynamischen Linker mit, dass die Symboltabelle des freigegebenen
Objekt soll als Hilfsfilter in der Symboltabelle des Shared Object verwendet werden
Name.

Wenn Sie später ein Programm mit diesem Filterobjekt verknüpfen, dann wird beim Ausführen des
Programms sieht der dynamische Linker das Feld DT_AUXILIARY. Wenn der dynamische Linker
alle Symbole aus dem Filterobjekt auflöst, wird zuerst geprüft, ob ein
Definition im gemeinsamen Objekt Name. Wenn es eines gibt, wird es anstelle des verwendet
Definition im Filterobjekt. Das gemeinsame Objekt Name muss nicht existieren. Und so kam es dass der
gemeinsames Objekt Name kann verwendet werden, um eine alternative Implementierung bestimmter
Funktionen, vielleicht zum Debuggen oder für maschinenspezifische Leistung.

Diese Option kann mehrmals angegeben werden. Die DT_AUXILIARY-Einträge werden erstellt
in der Reihenfolge, in der sie in der Befehlszeile erscheinen.

-F Name
--Filter Name
Setzen Sie beim Erstellen eines gemeinsam genutzten ELF-Objekts das interne Feld DT_FILTER auf den angegebenen
Name. Dies teilt dem dynamischen Linker mit, dass die Symboltabelle des gemeinsam genutzten Objekts, das
erstellt wird, soll als Filter auf die Symboltabelle des Shared Objects verwendet werden
Name.

Wenn Sie später ein Programm mit diesem Filterobjekt verknüpfen, dann wird beim Ausführen des
Programms sieht der dynamische Linker das Feld DT_FILTER. Der dynamische Linker wird
Symbole gemäß der Symboltabelle des Filterobjekts wie gewohnt auflösen, aber es
wird tatsächlich auf die Definitionen im gemeinsamen Objekt verweisen Name. Und so kam es dass der
Filter-Objekt kann verwendet werden, um eine Teilmenge der vom Objekt bereitgestellten Symbole auszuwählen
Name.

Einige ältere Linker verwendeten die -F Option in einer Kompilierungs-Toolchain für
Angeben des Objektdateiformats für Eingabe- und Ausgabeobjektdateien. Der GNU-Linker
nutzt dafür andere Mechanismen: die -b, --Format, --oformat Optionen, die
"TARGET"-Befehl in Linker-Skripten und die Umgebungsvariable "GNUTARGET". Die GNU
Linker ignoriert das -F Option, wenn kein gemeinsam genutztes ELF-Objekt erstellt wird.

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

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

-GWert
--gpsize=Wert
Stellen Sie die maximale Größe der zu optimierenden Objekte mithilfe des GP-Registers auf Größe. Dies
ist nur für Objektdateiformate wie MIPS ECOFF sinnvoll, die Putting unterstützen
große und kleine Objekte in verschiedene Abschnitte. Dies wird für andere Objekte ignoriert
Dateiformate.

-hName
-soname=Name
Setzen Sie beim Erstellen eines gemeinsam genutzten ELF-Objekts das interne Feld DT_SONAME auf den angegebenen
Name. Wenn eine ausführbare Datei mit einem gemeinsam genutzten Objekt verknüpft ist, das ein DT_SONAME-Feld hat,
Wenn dann die ausführbare Datei ausgeführt wird, versucht der dynamische Linker, die freigegebene Datei zu laden
Objekt, das durch das Feld DT_SONAME angegeben wird, anstatt den Dateinamen zu verwenden, der an . gegeben wurde
der Linker.

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

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

-lArchiv
--Bibliothek=Archiv
Archivdatei hinzufügen Archiv zur Liste der zu verlinkenden Dateien. Diese Option kann beliebig verwendet werden
Anzahl. ld durchsucht seine Pfadliste nach Vorkommen von "libarchiv.a" für
alles, Archiv spezifiziert.

Auf Systemen, die gemeinsam genutzte Bibliotheken unterstützen, ld kann auch nach Bibliotheken suchen mit
andere Erweiterungen als ".a". Insbesondere auf ELF- und SunOS-Systemen ld werde suchen a
Verzeichnis für eine Bibliothek mit der Erweiterung ".so", bevor Sie nach einer mit einem suchen
Erweiterung von ".a". Konventionell weist die Erweiterung ".so" auf eine gemeinsam genutzte Bibliothek hin.

Der Linker durchsucht ein Archiv nur einmal an dem Ort, an dem er angegeben ist auf
die Befehlszeile. Wenn das Archiv ein Symbol definiert, das in einem Objekt undefiniert war
die vor dem Archiv auf der Befehlszeile erschienen ist, enthält der Linker die
entsprechende Datei(en) aus dem Archiv. Jedoch ein undefiniertes Symbol in einem Objekt
ein späteres Erscheinen in der Befehlszeile führt nicht dazu, dass der Linker das Archiv durchsucht
erneut.

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

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

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

-LSuchverzeichnis
--Bibliothekspfad=Suchverzeichnis
Pfad hinzufügen Suchverzeichnis zur Liste der Pfade, die ld sucht nach Archivbibliotheken und
ld Skripte steuern. Sie können diese Option beliebig oft verwenden. Die Verzeichnisse sind
in der Reihenfolge durchsucht, in der sie in der Befehlszeile angegeben sind. Verzeichnisse
die in der Befehlszeile angegeben sind, werden vor den Standardverzeichnissen durchsucht. Alle -L
Optionen gelten für alle -l Optionen, unabhängig von der Reihenfolge, in der die Optionen angezeigt werden.

If Suchverzeichnis beginnt mit "=", dann wird das "=" durch das . ersetzt Sysroot Präfix, eine
Pfad angegeben, wenn der Linker konfiguriert ist.

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

Die Pfade können auch in einem Link-Skript mit dem Befehl "SEARCH_DIR" angegeben werden.
So spezifizierte Verzeichnisse werden an der Stelle durchsucht, an der das Linker-Skript
erscheint in der Befehlszeile.

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

Besitzt das -m Option nicht verwendet, wird die Emulation aus der "LDEMULATION"
Umgebungsvariable, falls diese definiert ist.

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

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

* Wo Objektdateien und Symbole in den Speicher abgebildet werden.

* Wie häufige Symbole zugewiesen werden.

* Alle im Link enthaltenen Archivmitglieder mit Erwähnung des Symbols, das
veranlasste, dass das Archivmitglied eingezogen wurde.

-n
--nmagie
Deaktivieren Sie die Seitenausrichtung von Abschnitten und markieren Sie die Ausgabe wenn möglich als "NMAGIC".

-N
--omagisch
Stellen Sie die Text- und Datenabschnitte so ein, dass sie lesbar und beschreibbar sind. Auch keine Seitenausrichtung
das Datensegment und deaktivieren Sie die Verknüpfung mit gemeinsam genutzten Bibliotheken. Wenn das Ausgabeformat
unterstützt magische Zahlen im Unix-Stil, markieren Sie die Ausgabe als "OMAGIC". Hinweis: Obwohl a
beschreibbarer Textabschnitt ist für PE-COFF-Ziele erlaubt, er entspricht nicht der
von Microsoft veröffentlichte Formatspezifikation.

--no-magic
Diese Option negiert die meisten Auswirkungen der -N Möglichkeit. Es setzt den Textabschnitt auf
schreibgeschützt sein und erzwingt die Seitenausrichtung des Datensegments. Hinweis - diese Option funktioniert
die Verknüpfung mit gemeinsam genutzten Bibliotheken nicht aktivieren. Verwenden -Bdynamisch dafür.

-o Ausgabe
--ausgabe=Ausgabe
Verwenden Sie die Ausgabe als Name für das von . produzierte Programm ld; wenn diese Option nicht ist
angegeben, der Name a.aus wird standardmäßig verwendet. Der Skriptbefehl "OUTPUT" kann auch
Geben Sie den Namen der Ausgabedatei an.

-O Grad des
If Grad des ist ein numerischer Wert größer als Null ld optimiert die Ausgabe. Das könnte
dauert deutlich länger und sollte daher wohl nur für das Finale aktiviert werden
binär.

-q
--emit-relocs
Belassen Sie Relocation-Abschnitte und -Inhalte in vollständig verknüpften ausführbaren Dateien. Link posten
Analyse- und Optimierungstools benötigen diese Informationen möglicherweise, um korrekte Ergebnisse zu erzielen
Modifikationen von ausführbaren Dateien. Dies führt zu größeren ausführbaren Dateien.

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

-r
--versetzbar
Verschiebbare Ausgabe generieren – dh eine Ausgabedatei generieren, die wiederum als
Eingabe zu ld. Das wird oft genannt Teil- Linking. Als Nebeneffekt in Umgebungen
die standardmäßige magische Unix-Zahlen unterstützen, setzt diese Option auch die
magische Zahl auf "OMAGIC". Wenn diese Option nicht angegeben ist, ist eine absolute Datei
produziert. Beim Verknüpfen von C++-Programmen ist diese Option werden wir nicht Verweise auf auflösen
Konstrukteure; Verwenden Sie dazu -Ur.

Wenn eine Eingabedatei nicht das gleiche Format wie die Ausgabedatei hat, teilweises Verknüpfen
wird nur unterstützt, wenn diese Eingabedatei keine Verschiebungen enthält. Unterschiedlich
Ausgabeformate können weitere Einschränkungen haben; zum Beispiel einige "a.out"-basierte Formate
unterstützen keine teilweise Verknüpfung mit Eingabedateien in anderen Formaten.

Diese Option bewirkt dasselbe wie -i.

-R Dateinamen
--just-symbols=Dateinamen
Lesen Sie Symbolnamen und deren Adressen aus Dateinamen, aber nicht verschieben oder einschließen
es in der Ausgabe. Dadurch kann sich Ihre Ausgabedatei symbolisch auf absolut beziehen
Speicherorte, die in anderen Programmen definiert sind. Sie können diese Option mehr als verwenden
Einmal.

Zur Kompatibilität mit anderen ELF-Linkern, wenn die -R Option folgt ein Verzeichnis
Name, anstatt eines Dateinamens, wird er 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 der Ausgabedatei aus.

-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 es zu ergänzen), also Befehlsdatei muss alles Notwendige angeben, um
beschreiben die Ausgabedatei. Wenn Skriptdatei existiert nicht im aktuellen Verzeichnis,
"ld" sucht danach in den Verzeichnissen, die von einem der vorhergehenden angegeben sind -L Optionen. Mehrere
-T Optionen akkumulieren.

-u Symbol
--undefiniert=Symbol
Zwingen Symbol als undefiniertes Symbol in die Ausgabedatei eingetragen werden. Dies kann
zum Beispiel das Einbinden zusätzlicher Module aus Standardbibliotheken anstoßen. -u könnte sein
mit verschiedenen Optionsargumenten wiederholt, um zusätzliche undefinierte Symbole einzugeben. Dies
Option entspricht dem Linker-Skriptbefehl "EXTERN".

-Ur Für alles andere als C++-Programme ist diese Option äquivalent zu -r: es erzeugt
verschiebbare Ausgabe --- dh eine Ausgabedatei, die wiederum als Eingabe für dienen kann ld. Wenn
Verknüpfen von C++-Programmen, -Ur die Referenzen auf Konstruktoren auflösen, im Gegensatz zu -r. Es tut
nicht zu verwenden -Ur auf Dateien, die selbst verlinkt wurden -Ur; einmal die
Konstruktortabelle erstellt wurde, kann sie nicht hinzugefügt werden. Verwenden -Ur nur zum letzten
Teilverbindung, und -r für die anderen.

--einzigartig[=SEKTION]
Erstellt einen separaten Ausgabebereich für jeden passenden Eingabebereich SEKTIONoder wenn die
optionaler Platzhalter SEKTION Argument fehlt, für jeden verwaisten Eingabeabschnitt. Ein
Der verwaiste Abschnitt ist ein Abschnitt, der in einem Linker-Skript nicht ausdrücklich erwähnt wird. Sie können dies verwenden
Option mehrmals in der Befehlszeile; Es verhindert das normale Zusammenführen von Eingaben
Abschnitte mit demselben Namen, überschreiben Ausgabeabschnittszuweisungen in einem Linker-Skript.

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

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

-X
--discard-locals
Löschen Sie alle temporären lokalen Symbole. Bei den meisten Zielen sind dies alle lokalen Symbole, deren
Namen beginnen mit L.

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

Diese Option ist nützlich, wenn Sie ein undefiniertes Symbol in Ihrem Link haben, aber nicht wissen
woher die Referenz kommt.

-Y Weg
Speichern Weg zum Standardsuchpfad für Bibliotheken. Diese Option existiert für Solaris
Kompatibilität.

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

Kombinieren
Kombiniert mehrere Reloc-Abschnitte und sortiert sie, um eine dynamische Symbolsuche zu ermöglichen
Zwischenspeicherung möglich.

defs
Verbietet undefinierte Symbole in Objektdateien. Undefinierte Symbole in geteilten
Bibliotheken sind weiterhin erlaubt.

initzuerst
Diese Option ist nur beim Erstellen eines gemeinsamen Objekts sinnvoll. Es markiert das Objekt
damit seine Laufzeitinitialisierung vor der Laufzeitinitialisierung von
alle anderen Gegenstände, die gleichzeitig in den Prozess eingebracht werden. Ähnlich die
Die Laufzeit-Finalisierung des Objekts erfolgt nach der Laufzeit-Finalisierung von
irgendwelche anderen Objekte.

dazwischenlegen
Markiert das Objekt, das seine Symboltabelle vor allen Symbolen außer dem
primäre ausführbare Datei.

Ladefltr
Markiert das Objekt, dass seine Filter sofort zur Laufzeit verarbeitet werden.

Muldefs
Ermöglicht mehrere Definitionen.

nocombreloc
Deaktiviert die Kombination mehrerer Reloc-Abschnitte.

nocopyreloc
Deaktiviert die Produktion von Kopierverlagerungen.

nodeFaultLib
Markiert das Objekt, dass die Suche nach Abhängigkeiten dieses Objekts alle ignoriert
Standardsuchpfade für Bibliotheken.

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

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

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

jetzt an Wenn Sie eine ausführbare oder gemeinsam genutzte Bibliothek generieren, markieren Sie diese, um der Dynamik mitzuteilen
Linker zum Auflösen aller Symbole, wenn das Programm gestartet wird oder wenn die geteilte
Bibliothek ist mit der Verwendung von dlopen verknüpft, anstatt die Auflösung von Funktionsaufrufen aufzuschieben
bis zu dem Punkt, an dem die Funktion zum ersten Mal aufgerufen wird.

Herkunft
Markiert, dass das Objekt $ORIGIN enthalten kann.

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

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

Die angegebenen Archive werden wiederholt durchsucht, bis keine neuen undefinierten Referenzen gefunden werden
erstellt. Normalerweise wird ein Archiv nur einmal in der angegebenen Reihenfolge durchsucht
auf der Kommandozeile. Wenn ein Symbol in diesem Archiv benötigt wird, um ein undefiniertes
Symbol, auf das ein Objekt in einem Archiv verweist, das später in der Befehlszeile erscheint,
der Linker wäre nicht in der Lage, diesen Verweis aufzulösen. Durch die Gruppierung der Archive,
sie alle werden wiederholt durchsucht, bis alle möglichen Referenzen aufgelöst sind.

Die Verwendung dieser Option ist mit erheblichen Leistungskosten verbunden. Es ist am besten, es nur zu verwenden, wenn
zwischen zwei oder mehr Archiven unvermeidliche Zirkelbezüge bestehen.

--accept-unknown-input-arch
--no-accept-unknown-input-arch
Weist den Linker an, Eingabedateien zu akzeptieren, deren Architektur nicht erkannt werden kann. Die
Annahme ist, dass der Nutzer weiß, was er tut und bewusst verlinken möchte
in diesen unbekannten Eingabedateien. Dies war das Standardverhalten des Linkers, bevor
Version 2.14. Das Standardverhalten ab Release 2.14 besteht darin, solche Eingaben abzulehnen
Dateien, und so die --accept-unknown-input-arch Option wurde hinzugefügt, um das alte wiederherzustellen
Verhalten.

--wie benötigt
--no-as-bened
Diese Option betrifft ELF DT_NEEDED-Tags für dynamische Bibliotheken, die im Befehl erwähnt werden
Linie nach dem --wie benötigt Möglichkeit. Normalerweise fügt der Linker ein DT_NEEDED-Tag für . hinzu
jede dynamische Bibliothek, die in der Befehlszeile erwähnt wird, unabhängig davon, ob die Bibliothek
wird tatsächlich benötigt. --wie benötigt bewirkt, dass DT_NEEDED-Tags nur ausgegeben werden für
Bibliotheken, die eine Symbolreferenz von regulären Objekten erfüllen, die nicht definiert ist
an dem Punkt, an dem die Bibliothek verlinkt wurde. --no-as-bened stellt den Standard wieder her
Verhalten.

--add-benötigt
--no-add-benötigt
Diese Option beeinflusst die Behandlung dynamischer Bibliotheken aus ELF DT_NEEDED-Tags in
dynamische Bibliotheken, die in der Befehlszeile nach dem erwähnt werden --no-add-benötigt .
Normalerweise fügt der Linker für jede dynamische Bibliothek von DT_NEEDED ein DT_NEEDED-Tag hinzu
Stichworte. --no-add-benötigt bewirkt, dass DT_NEEDED-Tags für diese Bibliotheken nie ausgegeben werden
von DT_NEEDED-Tags. --add-benötigt stellt das Standardverhalten wieder her.

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

-Bdynamisch
-dy
-call_shared
Link gegen dynamische Bibliotheken. Dies ist nur auf Plattformen sinnvoll, für die geteilt wird
Bibliotheken werden unterstützt. Diese Option ist normalerweise die Standardeinstellung auf solchen Plattformen. Die
verschiedene Varianten dieser Option dienen der Kompatibilität mit verschiedenen Systemen. Du darfst
Verwenden Sie diese Option mehrmals in der Befehlszeile: Sie betrifft die Bibliothekssuche nach
-l Optionen, die darauf folgen.

-Bgruppe
Setzen Sie im dynamischen Abschnitt im Eintrag "DT_FLAGS_1" das Flag "DF_1_GROUP". Dies
bewirkt, dass der Laufzeitlinker Lookups in diesem Objekt verarbeitet und seine Abhängigkeiten
nur innerhalb der Gruppe durchgeführt. --unresolved-symbols=alles melden ist impliziert. Dies
Option ist nur auf ELF-Plattformen sinnvoll, die gemeinsam genutzte Bibliotheken unterstützen.

-Bstatisch
-dn
-non_shared
-statisch
Verlinken Sie nicht gegen gemeinsam genutzte Bibliotheken. Dies ist nur auf Plattformen sinnvoll, für die
gemeinsame Bibliotheken werden unterstützt. Die verschiedenen Varianten dieser Option sind für
Kompatibilität mit verschiedenen Systemen. Sie können diese Option mehrmals auf der
Befehlszeile: Beeinflusst die Bibliothekssuche nach -l Optionen, die darauf folgen. Dies
Option impliziert auch --unresolved-symbols=alles melden.

-Bsymbolisch
Binden Sie beim Erstellen einer gemeinsam genutzten Bibliothek Verweise auf globale Symbole an die Definition
innerhalb der gemeinsam genutzten Bibliothek, falls vorhanden. Normalerweise ist es möglich, dass ein Programm verlinkt
gegen eine gemeinsam genutzte Bibliothek, um die Definition innerhalb der gemeinsam genutzten Bibliothek zu überschreiben. Dies
Option ist nur auf ELF-Plattformen sinnvoll, die gemeinsam genutzte Bibliotheken unterstützen.

--check-sections
- NO-Check-Sektionen
Fragt den Linker nicht um Abschnittsadressen zu überprüfen, nachdem sie zugewiesen wurden, um zu sehen, ob
gibt es Überschneidungen. Normalerweise führt der Linker diese Prüfung durch, und wenn er welche findet
Überschneidungen erzeugt es entsprechende Fehlermeldungen. Der Linker weiß davon, und
berücksichtigt Abschnitte in Überlagerungen. Das Standardverhalten kann wiederhergestellt werden
mit dem Befehlszeilenschalter --check-sections.

--cref
Geben Sie eine Querverweistabelle aus. Wenn eine Linker-Map-Datei generiert wird, wird das Kreuz
Referenztabelle wird in die Kartendatei gedruckt. Andernfalls wird es auf dem Standard gedruckt
Ausgabe.

Das Format der Tabelle ist bewusst einfach gehalten, damit sie problemlos von
ggf. ein Skript. Die Symbole werden nach Namen sortiert ausgedruckt. Für jedes Symbol,
eine Liste von Dateinamen wird angegeben. Wenn das Symbol definiert ist, ist die erste aufgeführte Datei die
Ort der Definition. Die restlichen Dateien enthalten Verweise auf das Symbol.

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

Das - nicht definieren-gemeinsam Option ermöglicht die Entkopplung der Entscheidung, Adressen zuzuordnen
Gemeinsame Symbole aus der Wahl des Ausgabedateityps; ansonsten ein nicht versetzbarer
Ausgabetyp erzwingt die Zuweisung von Adressen zu allgemeinen Symbolen. Verwenden von - nicht definieren-gemeinsam
ermöglicht die Zuweisung von Common-Symbolen, die aus einer Shared Library referenziert werden
Adressen nur im Hauptprogramm. Dadurch wird der ungenutzte doppelte Speicherplatz im
gemeinsam genutzte Bibliothek und verhindert auch mögliche Verwirrung bei der Auflösung des Falschen
Duplizieren, wenn viele dynamische Module mit spezialisierten Suchpfaden für
Auflösung der Laufzeitsymbole.

--defsym Symbol=Ausdruck
Erstellen Sie in der Ausgabedatei ein globales Symbol, das die absolute Adresse enthält, die durch . angegeben wird
Ausdruck. Sie können diese Option so oft wie nötig verwenden, um mehrere zu definieren
Symbole in der Befehlszeile. Eine eingeschränkte Form der Arithmetik wird für die
Ausdruck in diesem Zusammenhang: Sie können eine hexadezimale Konstante oder den Namen eines
vorhandenes Symbol oder verwenden Sie "+" und "-", um hexadezimale Konstanten hinzuzufügen oder zu subtrahieren oder
Symbole. Wenn Sie ausführlichere Ausdrücke benötigen, sollten Sie den Linker-Befehl verwenden
Sprache aus einem Skript. Hinweis: Es sollte kein Leerraum dazwischen sein Symbol, der
Gleichheitszeichen (``=''), und Ausdruck.

--demangle[=Stil]
-No-Demangle
Diese Optionen steuern, ob Symbolnamen in Fehlermeldungen und anderen verzerrt werden
Ausgang. Wenn dem Linker gesagt wird, dass er demangler soll, versucht er, Symbolnamen in a . darzustellen
lesbare Form: Es entfernt führende Unterstriche, wenn sie von der Objektdatei verwendet werden
-Format und konvertiert C++-Mangel-Symbolnamen in benutzerlesbare Namen. Unterschiedlich
Compiler haben verschiedene Mangling-Stile. Das optionale demangle-Stilargument kann
verwendet werden, um einen geeigneten Entschlüsselungsstil für Ihren Compiler auszuwählen. Der Linker wird
demangle standardmäßig, es sei denn, die Umgebungsvariable COLLECT_NO_DEMANGLE eingestellt ist. Diese
Optionen können verwendet werden, um die Standardeinstellung zu überschreiben.

--dynamischer-linker Datei
Legen Sie den Namen des dynamischen Linkers fest. Dies ist nur bei der Generierung sinnvoll
dynamisch verknüpfte ausführbare ELF-Dateien. Der standardmäßige dynamische Linker ist normalerweise korrekt;
Verwenden Sie dies nicht, es sei denn, Sie wissen, was Sie tun.

--tödliche-Warnungen
Behandeln Sie alle Warnungen als Fehler.

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

Wenn eine erfolgreich erstellte, vollständig verknüpfte Ausgabedatei keine ".exe" oder ".dll" enthält
Suffix, diese Option zwingt den Linker, die Ausgabedatei in eine mit demselben Namen zu kopieren
mit einem ".exe"-Suffix. Diese Option ist nützlich, wenn Sie unmodifizierte Unix-Makefiles auf einem
Microsoft Windows-Host, da einige Windows-Versionen kein Image ausführen, es sei denn, es ist
endet mit einem ".exe"-Suffix.

--no-gc-sections
--gc-Abschnitte
Aktivieren Sie die Garbage Collection von nicht verwendeten Eingabeabschnitten. Sie wird bei Zielen ignoriert, die dies tun
unterstützt diese Option nicht. Diese Option ist nicht kompatibel mit -r. Das Standardverhalten
(diese Garbage Collection nicht durchzuführen) kann durch Angabe von . wiederhergestellt werden
--no-gc-sections in der Kommandozeile.

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

--target-help
Drucken Sie eine Zusammenfassung aller zielspezifischen Optionen auf der Standardausgabe und beenden Sie sie.

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

--no-keep-memory
ld optimiert normalerweise die Geschwindigkeit über die Speichernutzung durch Zwischenspeichern der Symboltabellen von
Eingabedateien im Speicher. Diese Option sagt ld um stattdessen die Speichernutzung zu optimieren, indem
die Symboltabellen nach Bedarf erneut lesen. Dies kann erforderlich sein, wenn ld läuft aus
Speicherplatz beim Verknüpfen einer großen ausführbaren Datei.

--no-undefiniert
-z defs
Melden Sie nicht aufgelöste Symbolreferenzen aus regulären Objektdateien. Dies geschieht auch dann, wenn
der Linker erstellt eine nicht-symbolische gemeinsam genutzte Bibliothek. Der Schalter
--[no-]allow-shlib-undefiniert steuert das Verhalten bei der Meldung von ungelösten
Referenzen, die in gemeinsam genutzten Bibliotheken gefunden werden, in die verlinkt wird.

--allow-multiple-definition
-z Muldefs
Wenn ein Symbol mehrmals definiert wird, meldet der Linker normalerweise einen fatalen
Error. Diese Optionen erlauben mehrere Definitionen und die erste Definition wird verwendet.

--allow-shlib-undefiniert
--no-allow-shlib-undefiniert
Erlaubt (Standard) oder verbietet undefinierte Symbole in gemeinsam genutzten Bibliotheken. Dieser Schalter
ähnelt --no-undefiniert außer dass es das Verhalten bestimmt, wenn die
undefinierte Symbole befinden sich in einer gemeinsam genutzten Bibliothek und nicht in einer regulären Objektdatei. Es tut
hat keinen Einfluss darauf, wie undefinierte Symbole in regulären Objektdateien behandelt werden.

Der Grund dass --allow-shlib-undefiniert ist die Voreinstellung, dass die gemeinsam genutzte Bibliothek
die zur Linkzeit angegeben wird, ist möglicherweise nicht dieselbe wie die, die beim Laden verfügbar ist
Zeit, sodass die Symbole möglicherweise tatsächlich zur Ladezeit aufgelöst werden können. Außerdem gibt es einige
Systeme (zB BeOS), bei denen undefinierte Symbole in Shared Libraries normal sind. (Der Kernel
patcht sie zur Ladezeit, um auszuwählen, welche Funktion am besten für den aktuellen geeignet ist
die Architektur. Dies wird zum Beispiel verwendet, um dynamisch ein geeignetes Memset auszuwählen
Funktion). Anscheinend ist es auch normal, dass HPPA Shared Libraries undefinierte
Symbole.

--keine-undefinierte-Version
Normalerweise ignoriert der Linker, wenn ein Symbol eine undefinierte Version hat. Dies
Option verbietet Symbole mit undefinierter Version und es wird ein schwerwiegender Fehler ausgegeben
stattdessen.

-Default-Symver
Erstellen und verwenden Sie eine Standardsymbolversion (den soname) für nicht versionierte exportierte Symbole.

--default-imported-symver
Erstellen und verwenden Sie eine Standardsymbolversion (den soname) für nicht versionierte importierte Symbole.

--no-warn-mismatch
Normalerweise ld gibt einen Fehler aus, wenn Sie versuchen, Eingabedateien zu verknüpfen, die
aus irgendeinem Grund nicht zusammenpassen, vielleicht weil sie für verschiedene kompiliert wurden
Prozessoren oder für verschiedene Endianness. Diese Option sagt ld dass es sollte
stillschweigend solche möglichen Fehler zulassen. Diese Option sollte nur mit Vorsicht verwendet werden, in
Fälle, in denen Sie spezielle Maßnahmen ergriffen haben, um sicherzustellen, dass die Linker-Fehler
unangemessen.

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

--noinhibit-exec
Bewahren Sie die ausführbare Ausgabedatei auf, wenn sie noch verwendbar ist. Normalerweise ist der Linker
erzeugt keine Ausgabedatei, wenn während des Verknüpfungsprozesses Fehler auftreten; es
beendet, ohne eine Ausgabedatei zu schreiben, wenn irgendein Fehler ausgegeben wird.

-nostdlib
Durchsuchen Sie nur Bibliotheksverzeichnisse, die explizit in der Befehlszeile angegeben sind. Bücherei
Verzeichnisse, die in Linker-Skripten angegeben sind (einschließlich Linker-Skripten, die auf der
Kommandozeile) werden ignoriert.

--oformat Ausgabeformat
ld kann konfiguriert werden, um mehr als eine Art von Objektdatei zu unterstützen. Wenn dein ld is
so konfiguriert, können Sie die --oformat Option zum Angeben des Binärformats für
die Ausgabeobjektdatei. Sogar wenn ld ist konfiguriert, um alternatives Objekt zu unterstützen
Formate müssen Sie dies normalerweise nicht angeben, da ld sollte konfiguriert werden, um zu produzieren
als Standardausgabeformat das gängigste Format auf jedem Rechner. Ausgabeformat ist eine
text string, der Name eines bestimmten Formats, das von den BFD-Bibliotheken unterstützt wird. (Du kannst
die verfügbaren Binärformate mit auflisten objdump -i.) Der Skriptbefehl
"OUTPUT_FORMAT" kann auch das Ausgabeformat angeben, aber diese Option überschreibt es.

-Kuchen
--pic-ausführbare Datei
Erstellen Sie eine positionsunabhängige ausführbare Datei. Dies wird derzeit nur auf ELF . unterstützt
Plattformen. Positionsunabhängige ausführbare Dateien ähneln insofern Shared Libraries
sie werden vom dynamischen Linker an die virtuelle Adresse verschoben, für die das Betriebssystem wählt
sie (die zwischen Aufrufen variieren können). Wie normale dynamisch verknüpfte ausführbare Dateien
sie können ausgeführt werden und Symbole, die in der ausführbaren Datei definiert sind, können nicht überschrieben werden durch
gemeinsam genutzte Bibliotheken.

-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
Eine Option mit maschinenabhängigen Effekten. Diese Option wird nur von wenigen unterstützt
Ziele.

Auf einigen Plattformen ist die --Entspannen Sie sich Option führt globale Optimierungen durch, die zu
möglich, wenn der Linker die Adressierung im Programm auflöst, z
Modi und Synthetisieren neuer Anweisungen in der Ausgabeobjektdatei.

Auf einigen Plattformen können diese globalen Optimierungen der Linkzeit zu einer symbolischen Fehlersuche führen
die resultierende ausführbare Datei unmöglich. Dies ist bekanntlich bei den Matsushita . der Fall
MN10200 und MN10300 Prozessorfamilie.

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

--retain-symbols-Datei Dateinamen
Behalten einzige die in der Datei aufgeführten Symbole Dateinamen, alle anderen verwerfen. Dateinamen
ist einfach eine flache Datei mit einem Symbolnamen pro Zeile. Diese Option ist besonders
nützlich in Umgebungen (wie VxWorks), in denen eine große globale Symboltabelle vorhanden ist
nach und nach akkumuliert, um den Laufzeitspeicher zu schonen.

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

Sie können nur angeben --retain-symbols-Datei einmal in der Kommandozeile. Es überschreibt -s
und -S.

-Pfad dir
Fügen Sie dem Suchpfad der Laufzeitbibliothek ein Verzeichnis hinzu. Dies wird beim Verknüpfen eines ELF . verwendet
ausführbar mit Shared Objects. Alle -Pfad Argumente werden verkettet und an . übergeben
den Laufzeitlinker, der sie verwendet, um gemeinsam genutzte Objekte zur Laufzeit zu finden. Die -Pfad
Option wird auch beim Auffinden von Shared Objects verwendet, die von Shared Objects benötigt werden
explizit im Link enthalten; siehe die Beschreibung des -rpath-link Möglichkeit. Wenn
-Pfad wird nicht verwendet, wenn eine ausführbare ELF-Datei verknüpft wird, der Inhalt der Umgebung
die Variable "LD_RUN_PATH" wird verwendet, wenn sie definiert ist.

Das -Pfad Option kann auch unter SunOS verwendet werden. Standardmäßig wird der Linker unter SunOS
Bilden Sie einen Laufzeitsuchpatch aus all den -L Optionen gegeben ist. Wenn eine -Pfad zu erhalten
verwendet wird, wird der Laufzeitsuchpfad ausschließlich über die -Pfad Optionen,
Ignorieren der -L Optionen. Dies kann nützlich sein, wenn Sie gcc verwenden, das viele hinzufügt -L
Optionen, die sich auf NFS-gemounteten Dateisystemen befinden können.

Zur Kompatibilität mit anderen ELF-Linkern, wenn die -R Option folgt ein Verzeichnis
Name, anstatt eines Dateinamens, wird er als -Pfad .

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

Wenn der Linker auf eine solche Abhängigkeit stößt, wenn er ein nicht gemeinsam genutztes, nicht verschiebbares
Link, wird automatisch versucht, die erforderliche gemeinsam genutzte Bibliothek zu finden und sie einzubinden
im Link, wenn es nicht explizit enthalten ist. In einem solchen Fall ist die -rpath-link zu erhalten
gibt den ersten zu durchsuchenden Satz von Verzeichnissen an. Die -rpath-link Option kann angeben
eine Folge von Verzeichnisnamen entweder durch Angabe einer Liste von Namen getrennt durch
Doppelpunkte oder durch mehrfaches Erscheinen.

Diese Option sollte mit Vorsicht verwendet werden, da sie den möglicherweise vorhandenen Suchpfad überschreibt
wurde hart in eine gemeinsam genutzte Bibliothek kompiliert. In einem solchen Fall ist es möglich,
unbeabsichtigt einen anderen Suchpfad als der Laufzeitlinker.

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

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ührbar und zur Laufzeit verwendet, während die -rpath-link Option ist nur wirksam
zur Linkzeit. Es ist nur für den nativen Linker.

3. Bei einem ELF-System, wenn die -Pfad und "rpath-link"-Optionen wurden nicht verwendet, suchen Sie die
Inhalt der Umgebungsvariablen "LD_RUN_PATH". Es ist für den nativen Linker
nur.

4. Unter SunOS, wenn die -Pfad Option wurde nicht verwendet, durchsuchen Sie alle angegebenen Verzeichnisse
Verwendung von -L Optionen.

5. Bei einem nativen Linker der Inhalt der Umgebungsvariablen "LD_LIBRARY_PATH".

6. Bei einem nativen ELF-Linker sind die Verzeichnisse in "DT_RUNPATH" oder "DT_RPATH" eines freigegebenen
Bibliothek werden nach gemeinsam genutzten Bibliotheken durchsucht, die von ihr benötigt werden. Die "DT_RPATH"-Einträge sind
ignoriert, wenn "DT_RUNPATH"-Einträge vorhanden sind.

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 in dieser Datei gefundenen Verzeichnisse.

Wenn die erforderliche Shared Library nicht gefunden wird, gibt der Linker eine Warnung aus und
weiter mit dem Link.

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

--sort-common
Diese Option sagt ld um die allgemeinen Symbole nach Größe zu sortieren, wenn sie in die
entsprechende Ausgabeabschnitte. Zuerst kommen alle Ein-Byte-Symbole, dann alle zwei
Byte, dann alle vier Byte und dann alles andere. Dies soll Lücken vermeiden
zwischen Symbolen aufgrund von Ausrichtungsbeschränkungen.

--sort-sektion Name
Diese Option wendet "SORT_BY_NAME" auf alle Platzhalter-Abschnittsmuster im Linker an
Skripte.

--sort-sektion Ausrichtung
Diese Option wendet "SORT_BY_ALIGNMENT" auf alle Platzhalter-Abschnittsmuster in der . an
Linker-Skript.

--Nach Datei aufteilen [Größe]
Ähnlich --Split-by-reloc erstellt aber einen neuen Ausgabeabschnitt für jede Eingabedatei, wenn
Größe ist erreicht. Größe Standardmäßig ist die Größe 1 wenn nicht angegeben.

--Split-by-reloc [zählen]
Versucht, zusätzliche Abschnitte in der Ausgabedatei zu erstellen, damit kein einzelner Ausgabeabschnitt in
die Datei enthält mehr als zählen Umzüge. Dies ist nützlich, wenn Sie riesige
verschiebbare Dateien zum Herunterladen in bestimmte Echtzeit-Kernel mit dem COFF-Objekt
Datei Format; da COFF nicht mehr als 65535 Umzüge in einer einzigen darstellen kann
Sektion. Beachten Sie, dass dies nicht mit Objektdateiformaten funktioniert, die dies nicht tun
willkürliche Abschnitte unterstützen. Der Linker teilt keine einzelnen Eingabeabschnitte auf
zur Umverteilung, wenn also ein einzelner Eingabeabschnitt mehr als zählen Umzüge
ein Ausgabeabschnitt enthält so viele Verschiebungen. zählen standardmäßig auf einen Wert von
32768

--Statistiken
Berechnen und Anzeigen von Statistiken über den Betrieb des Linkers, z. B. die Ausführung
Zeit und Speicherverbrauch.

--sysroot=Verzeichnis
Verwenden Sie die Verzeichnis als Speicherort der sysroot, überschreibt den Konfigurationszeitstandard.
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 gewisser Weise von der Ausgabe einiger
vorhandener Linker. Dieser Schalter fordert ld stattdessen das traditionelle Format verwenden.

Unter SunOS beispielsweise ld kombiniert doppelte Einträge in der Symbolzeichenfolgentabelle. Dies
kann die Größe einer Ausgabedatei mit vollständigen Debugging-Informationen um über 30 Zoll reduzieren
Prozent. Leider kann das SunOS-Programm "dbx" das resultierende Programm nicht lesen
("gdb" hat keine Probleme). Die --traditionelles-format Schalter sagt ld nicht kombinieren
doppelte Einträge.

--Abschnitt-Start Abteilungsname=org
Suchen Sie einen Abschnitt in der Ausgabedatei an der durch . angegebenen absoluten Adresse org. Sie können verwenden
diese Option so oft wie nötig, um mehrere Abschnitte im Befehl zu finden
Linie. org muss eine einzelne hexadezimale Ganzzahl sein; zur Kompatibilität mit anderen Linkern,
du kannst das führende weglassen 0x normalerweise mit hexadezimalen Werten verbunden. Hinweis: dort
sollte kein Leerraum dazwischen sein Abteilungsname, das Gleichheitszeichen (``=''), und org.

-Tbss org
-TDaten org
-Text org
Wie --section-start, mit ".bss", ".data" oder ".text" als Abteilungsname.

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

alles ignorieren
Melden Sie keine ungelösten Symbole.

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

Ignoriere-in-Objekt-Dateien
Melden Sie nicht aufgelöste Symbole, die in gemeinsam genutzten Bibliotheken enthalten sind, aber ignorieren Sie sie
wenn sie aus regulären Objektdateien stammen.

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

Das Verhalten für Shared Libraries allein kann auch durch die
--[no-]allow-shlib-undefiniert .

Normalerweise generiert der Linker eine Fehlermeldung für jedes gemeldete nicht aufgelöste Symbol
aber die möglichkeit --warn-unresolved-symbols kann dies in eine Warnung ändern.

--dll-verbose
- ausführlich
Anzeige der Versionsnummer für ld und listen Sie die unterstützten Linkeremulationen auf. Anzeige
welche Eingabedateien geöffnet werden können und welche nicht. Zeigen Sie das Linker-Skript an, das von verwendet wird
der Linker.

--Version-Skript =Versions-Skriptdatei
Geben Sie dem Linker den Namen eines Versionsskripts an. Dies wird normalerweise verwendet, wenn
Erstellen von gemeinsam genutzten Bibliotheken, um zusätzliche Informationen über die Version anzugeben
Hierarchie für die zu erstellende Bibliothek. Diese Option ist nur bei ELF . sinnvoll
Plattformen, die gemeinsam genutzte Bibliotheken unterstützen.

--warn-common
Warnen, wenn ein gemeinsames Symbol mit einem anderen gemeinsamen Symbol oder mit einem Symbol kombiniert wird
Definition. Unix-Linker erlauben diese etwas schlampige Praxis, aber Linker auf einigen
andere Betriebssysteme nicht. Mit dieser Option können Sie potenzielle Probleme finden
aus der Kombination globaler Symbole. Leider verwenden einige C-Bibliotheken diese Praxis, also
Sie erhalten möglicherweise einige Warnungen zu Symbolen in den Bibliotheken sowie in Ihren Programmen.

Es gibt drei Arten von globalen Symbolen, die hier durch C-Beispiele veranschaulicht werden:

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

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

int i;
Ein gemeinsames Symbol. Wenn es nur (ein oder mehrere) gemeinsame Symbole für eine Variable gibt,
es geht in den nicht initialisierten Datenbereich der Ausgabedatei. Der Linker wird zusammengeführt
mehrere gemeinsame Symbole für dieselbe Variable zu einem einzigen Symbol. Wenn sie sind
von verschiedenen Größen wählt es die größte Größe aus. Der Linker wird zu einem gemeinsamen Symbol
in eine Deklaration, wenn es eine Definition derselben Variablen gibt.

Das --warn-common Option kann fünf Arten von Warnungen erzeugen. Jede Warnung besteht aus
ein Linienpaar: die erste beschreibt das gerade angetroffene Symbol und die zweite
beschreibt das zuvor angetroffene Symbol mit dem gleichen Namen. Einer oder beide von beiden
Symbole werden ein gemeinsames Symbol sein.

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

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

2. Aus einem gemeinsamen Symbol eine Referenz machen, weil eine spätere Definition für das
Symbol begegnet. Dies ist das gleiche wie im vorherigen Fall, außer dass die
Symbole werden in einer anderen Reihenfolge angetroffen.

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

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

( ): 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. Das ist das gleiche
wie im vorherigen Fall, außer dass die Symbole in einem anderen Fall angetroffen werden
Ordnung.

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

--warn-Konstruktoren
Warnen, wenn globale Konstruktoren verwendet werden. Dies ist nur für einige Objektdateien sinnvoll
Formate. Bei Formaten wie COFF oder ELF kann der Linker die Verwendung von global . nicht erkennen
Konstrukteure.

--warn-multiple-gp
Warnen, wenn in der Ausgabedatei mehrere globale Zeigerwerte erforderlich sind. Das ist nur
sinnvoll für bestimmte Prozessoren, wie den Alpha. Insbesondere einige Prozessoren
Legen Sie großwertige Konstanten in einen speziellen Abschnitt. Ein spezielles Register (das globale
Zeiger) zeigt in die Mitte dieses Abschnitts, damit Konstanten geladen werden können
effizient über einen relativen Adressierungsmodus des Basisregisters. Da der Offset in Basis-
Der relative Registermodus ist fest und relativ klein (zB 16 Bit), dies begrenzt die
maximale Größe des konstanten Pools. Daher ist es in großen Programmen oft notwendig,
Verwenden Sie mehrere globale Zeigerwerte, um alle möglichen ansprechen zu können
Konstanten. Diese Option bewirkt, dass in diesem Fall eine Warnung ausgegeben wird.

--einmal warnen
Nur einmal für jedes undefinierte Symbol warnen, nicht einmal pro Modul, das sich auf . bezieht
es.

--warn-section-align
Warnen, wenn sich die Adresse eines Ausgabeabschnitts aufgrund der Ausrichtung ändert. Typischerweise
die Ausrichtung wird durch eine Eingabesektion festgelegt. Die Adresse wird nur geändert, wenn sie
nicht explizit angegeben; das heißt, wenn der Befehl "SECTIONS" keinen Start angibt
Adresse für den Abschnitt.

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

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

--error-unresolved-symbols
Dadurch wird das Standardverhalten des Linkers wiederhergestellt, bei der Berichterstellung Fehler zu generieren
ungelöste Symbole.

- Ganzes Archiv
Für jedes Archiv, das in der Befehlszeile nach dem - Ganzes Archiv Option,
nehmen Sie jede Objektdatei im Archiv in den Link auf, anstatt die
Archiv für die benötigten Objektdateien. Dies wird normalerweise verwendet, um eine Archivdatei umzuwandeln
in eine Shared Library, wodurch jedes Objekt in die resultierende Shared-Library aufgenommen wird
Bücherei. Diese Option kann mehrmals verwendet werden.

Zwei Hinweise zur Verwendung dieser Option von gcc: Erstens kennt gcc diese Option nicht,
also musst du benutzen -Wl,-ganzes-archiv. Zweitens, vergessen Sie nicht zu verwenden
-Wl,-kein-ganzes-Archiv nach Ihrer Archivliste, da gcc eine eigene Liste hinzufügt
von Archiven zu Ihrem Link und Sie möchten möglicherweise nicht, dass sich dieses Flag auch auf diese auswirkt.

--wickeln Symbol
Verwenden Sie eine Wrapper-Funktion für Symbol. Jeder undefinierte Verweis auf Symbol wird gelöst
einpacken_Symbol". Jeder undefinierte Verweis auf "__real_Symbol" wird gelöst zu
Symbol.

Dies kann verwendet werden, um einen Wrapper für eine Systemfunktion bereitzustellen. Die Wrapper-Funktion
sollte "__wrap_" heißenSymbol". Wenn es die Systemfunktion aufrufen möchte, sollte es
Anruf "__real_Symbol".

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 Anrufe an "malloc"
ruft stattdessen die Funktion "__wrap_malloc" auf. Der Aufruf an "__real_malloc" in
"__wrap_malloc" ruft die echte "malloc"-Funktion auf.

Möglicherweise möchten Sie auch eine "__real_malloc"-Funktion bereitstellen, damit Links ohne die
--wickeln Option wird gelingen. Wenn Sie dies tun, sollten Sie die Definition von
"__real_malloc" in derselben Datei wie "__wrap_malloc"; Wenn Sie dies tun, kann der Assembler
den Aufruf auflösen, bevor der Linker die Möglichkeit hat, ihn in "malloc" umzuschließen.

--eable-new-dtags
--disable-new-dtags
Dieser Linker kann die neuen dynamischen Tags in ELF erstellen. Aber die älteren ELF-Systeme können dies nicht tun
verstehe sie. Wenn Sie angeben --eable-new-dtags, die dynamischen Tags werden erstellt
wie benötigt. Wenn Sie angeben --disable-new-dtags, werden keine neuen dynamischen Tags erstellt.
Standardmäßig werden die neuen dynamischen Tags nicht erstellt. Beachten Sie, dass diese Optionen nur
für ELF-Systeme verfügbar.

--hash-size=Anzahl
Legen Sie die Standardgröße der Hash-Tabellen des Linkers auf eine Primzahl nahe fest Anzahl.
Durch Erhöhen dieses Wertes kann die Zeit verkürzt werden, die der Linker benötigt, um seine
Aufgaben, auf Kosten der Erhöhung der Speicheranforderungen des Linkers. Ähnlich
eine Verringerung dieses Wertes kann den Speicherbedarf auf Kosten der Geschwindigkeit verringern.

--Reduzieren-Speicher-Overheads
Diese Option reduziert den Speicherbedarf zur ld-Laufzeit auf Kosten der Verknüpfung
Geschwindigkeit. Dies wurde eingeführt, um den alten O(n^2)-Algorithmus für die Link-Map-Datei auszuwählen
Generation statt des neuen O(n)-Algorithmus, der etwa 40% mehr Speicher für
Symbolspeicherung.

Ein weiterer Effekt des Schalters besteht darin, die Standardgröße der Hashtabelle auf 1021 zu setzen, was
spart erneut Speicher auf Kosten der Verlängerung der Laufzeit des Linkers. Das ist nicht fertig
aber wenn die --Hash-Größe Schalter verwendet wurde.

Das --Reduzieren-Speicher-Overheads Der Schalter kann auch verwendet werden, um andere Kompromisse zu ermöglichen
zukünftige Versionen des Linkers.

Der i386 PE-Linker unterstützt die -geteilt Option, die bewirkt, dass die Ausgabe a . ist
Dynamisch verknüpfte Bibliothek (DLL) anstelle einer normalen ausführbaren Datei. Sie sollten die benennen
geben Sie "*.dll" aus, wenn Sie diese Option verwenden. Darüber hinaus unterstützt der Linker vollständig die
Standard-"*.def"-Dateien, die in der Linker-Befehlszeile wie ein Objekt angegeben werden können
Datei (tatsächlich sollte sie Archiven vorangehen, aus denen Symbole exportiert werden, um sicherzustellen, dass sie
eingebunden, genau wie eine normale Objektdatei).

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

--add-stdcall-alias
Falls angegeben, Symbole mit einem stdcall-Suffix (@nn) werden so wie sie sind und auch mit dem exportierten
Suffix abgezogen. [Diese Option ist spezifisch für den auf i386 PE gerichteten Port des Linkers]

--base-Datei Datei
Verwenden Sie die Datei als Name einer Datei, in der die Basisadressen aller
Umzüge für die Generierung von DLLs mit dlltool. [Dies ist ein i386 PE-spezifisch
Möglichkeit]

--dll
Erstellen Sie eine DLL anstelle einer regulären ausführbaren Datei. Sie können auch verwenden -geteilt oder spezifizieren Sie a
"BIBLIOTHEK" in einer bestimmten ".def"-Datei. [Diese Option ist spezifisch für das i386 PE-Zielgerät
Port des Linkers]

--enable-stdcall-fixup
--disable-stdcall-fixup
Wenn der Link ein Symbol findet, das er nicht auflösen kann, wird versucht, "unscharf" zu machen
linking'', indem Sie nach einem anderen definierten Symbol suchen, das sich nur im Format des
Symbolname (cdecl vs stdcall) und löst dieses Symbol auf, indem es mit der Übereinstimmung verknüpft wird.
Zum Beispiel könnte das undefinierte Symbol "_foo" mit der Funktion "_foo@12" verknüpft sein, oder
das undefinierte Symbol "_bar@16" könnte mit der Funktion "_bar" verknüpft sein. Wenn das
linker dies tut, gibt er eine Warnung aus, da er normalerweise nicht hätte verknüpfen können,
aber manchmal benötigen Importbibliotheken, die aus DLLs von Drittanbietern generiert wurden, diese Funktion
verwendbar zu 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 solche Nichtübereinstimmungen werden als Fehler betrachtet. [Diese Option ist spezifisch für
der auf i386 PE gerichtete Port des Linkers]

--export-alle-symbole
Wenn angegeben, werden alle globalen Symbole in den Objekten, die zum Erstellen einer DLL verwendet werden, exportiert von
die DLL. Beachten Sie, dass dies die Standardeinstellung ist, wenn sonst keine exportiert würden
Symbole. Wenn Symbole explizit über DEF-Dateien oder implizit exportiert werden
über Funktionsattribute wird standardmäßig nichts anderes exportiert, es sei denn, diese Option ist
gegeben ist. Beachten Sie, dass die Symbole "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12" und "impure_ptr" werden nicht automatisch exportiert. Ebenfalls,
Symbole, die aus anderen DLLs importiert wurden, werden nicht erneut exportiert, ebenso keine Symbole, die
das interne Layout der DLL, z. B. solche, die mit "_head_" beginnen oder mit enden
"_iname". Außerdem keine Symbole aus "libgcc", "libstd++", "libmingw32" oder
"crtX.o" wird exportiert. Symbole, deren Namen mit "__rtti_" oder "__builtin_" beginnen
wird nicht exportiert, um bei C++-DLLs zu helfen. Schließlich gibt es eine umfangreiche Liste von
cygwin-private Symbole, die nicht exportiert werden (dies gilt natürlich beim Bauen)
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 das i386 PE-Zielgerät
Port des Linkers]

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

--file-alignment
Geben Sie die Dateiausrichtung an. Abschnitte in der Datei beginnen immer an Datei-Offsets
die ein Vielfaches dieser Zahl sind. Der Standardwert ist 512. [Diese Option ist spezifisch
zum i386 PE-Zielport des Linkers]

--Haufen sowie das Hotel
--Haufen sowie das Hotel ,verpflichten
Geben Sie die zu reservierende (und optional zu übergebende) Speichermenge an, die als Heap für verwendet werden soll
dieses Programm. Der Standardwert ist 1 MB reserviert, 4 KB festgeschrieben. [Diese Option ist spezifisch für
der auf i386 PE gerichtete Port des Linkers]

--image-base Wert
Verwenden Sie die Wert als Basisadresse Ihres Programms oder Ihrer DLL. Dies ist der niedrigste Speicher
Speicherort, der verwendet wird, wenn Ihr Programm oder Ihre DLL geladen wird. Um die Notwendigkeit zu reduzieren
Verschieben und verbessern Sie die Leistung Ihrer DLLs, jede sollte eine eindeutige Basisadresse haben
und keine anderen DLLs überlappen. 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
Linker]

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

--große-adress-bewusst
Falls angegeben, ist das entsprechende Bit im Feld ``Eigenschaften'' des COFF-Headers
gesetzt, um anzuzeigen, dass diese ausführbare Datei virtuelle Adressen größer als 2 . unterstützt
Gigabyte. Dies sollte in Verbindung mit /3GB oder /USERVA= . verwendet werdenWert Megabyte
Schalter im Abschnitt ``[Betriebssysteme]'' der BOOT.INI. Ansonsten dieses Bit
hat keine Wirkung. [Diese Option ist spezifisch für PE-gerichtete Ports des Linkers]

--MAJOR-Image-Version Wert
Setzt die Hauptnummer der ``Image-Version''. Der Standardwert ist 1. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--major-os-version Wert
Setzt die Major-Nummer der ``os-Version''. Der Standardwert ist 4. [Diese Option ist spezifisch
zum i386 PE-Zielport des Linkers]

--major-subsystem-version Wert
Setzt die Major-Nummer der ``Subsystem-Version''. Der Standardwert ist 4. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--minor-image-version Wert
Setzt die Minor-Nummer der ``Image-Version''. Der Standardwert ist 0. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--minor-os-version Wert
Setzt die Minor-Nummer der ``os-Version''. Der Standardwert ist 0. [Diese Option ist spezifisch
zum i386 PE-Zielport des Linkers]

--minor-subsystem-version Wert
Setzt die Minor-Nummer der ``Subsystem-Version''. Der Standardwert ist 0. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--output-def Datei
Der Linker erstellt die Datei Datei die eine DEF-Datei enthält, die entspricht
die DLL, die der Linker generiert. Diese DEF-Datei (die "*.def" heißen sollte) kann
verwendet werden, um eine Importbibliothek mit "dlltool" zu erstellen, oder kann als Referenz auf . verwendet werden
automatisch oder implizit exportierte Symbole. [Diese Option ist spezifisch für den i386 PE
Zielport des Linkers]

--out-implib Datei
Der Linker erstellt die Datei Datei die eine Import-Bibliothek enthält, die entspricht
die DLL, die der Linker generiert. Diese Importbibliothek (die "*.dll.a" heißen sollte oder
"*.a" kann verwendet werden, um Clients mit der generierten DLL zu verknüpfen; dieses Verhalten macht es aus
möglich, einen separaten Erstellungsschritt für die Importbibliothek "dlltool" zu überspringen. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

--enable-auto-image-base
Wählen Sie automatisch die Image-Basis für DLLs aus, es sei denn, eine wird mit dem
"--image-base"-Argument. Durch die Verwendung eines Hashs, der aus dem DLL-Namen generiert wird, um eindeutige zu erstellen
Image-Basen für jede DLL, In-Memory-Kollisionen und Verschiebungen, die das Programm verzögern können
Ausführung vermieden werden. [Diese Option ist spezifisch für den i386 PE-Zielport des
Linker]

--disable-auto-image-base
Generieren Sie nicht automatisch eine eindeutige Bilddatenbank. Wenn kein Benutzer angegeben ist
image base ("--image-base") verwenden Sie dann den Plattformstandard. [Diese Option ist spezifisch
zum i386 PE-Zielport des Linkers]

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

--enable-auto-import
Führen Sie eine ausgeklügelte Verknüpfung von "_symbol" mit "__imp__symbol" für DATA-Importe aus DLLs durch,
und erstellen Sie die notwendigen Thunking-Symbole beim Erstellen der Importbibliotheken mit
diese DATEN-Exporte. Hinweis: Die Verwendung der Erweiterung 'Auto-Import' führt dazu, dass der Text
Abschnitt der Bilddatei beschreibbar gemacht werden. Dies entspricht nicht dem PE-COFF
von Microsoft veröffentlichte Formatspezifikation.

Die Verwendung von "Auto-Import" funktioniert im Allgemeinen "einfach" - aber manchmal sehen Sie dies möglicherweise
Nachricht:

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

Diese Meldung tritt auf, wenn ein (Unter-)Ausdruck auf eine Adresse zugreift, die letztendlich von
die Summe zweier Konstanten (Win32-Importtabellen erlauben nur eine). Fälle, in denen dies
auftreten können, sind Zugriffe auf Memberfelder von Strukturvariablen, die aus einer DLL importiert wurden,
sowie die Verwendung eines konstanten Index in eine aus einer DLL importierte Array-Variable. Irgendein
Multiword-Variable (Arrays, Structs, Long Long usw.) können diesen Fehlerzustand auslösen.
Unabhängig vom genauen Datentyp der fehlerhaften exportierten Variablen wird ld jedoch
immer erkennen, die Warnung ausgeben und beenden.

Es gibt mehrere Möglichkeiten, dieses Problem zu lösen, unabhängig vom Datentyp der
exportierte Variable:

Eine Möglichkeit besteht darin, den Schalter --enable-runtime-pseudo-reloc zu verwenden. Damit bleibt die Aufgabe
Referenzen in Ihrem Clientcode für die Laufzeitumgebung anpassen, damit diese Methode funktioniert
nur wenn die Laufzeitumgebung diese Funktion unterstützt.

Eine zweite Lösung besteht darin, eine der 'Konstanten' zu zwingen, eine Variable zu sein, d.h.
zur Kompilierzeit unbekannt und nicht optimierbar. Für Arrays gibt es zwei Möglichkeiten:
a) machen Sie den Indexee (die Adresse des Arrays) zu einer Variablen, oder b) machen Sie den 'konstanten' Index
eine 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) besteht die einzige Möglichkeit darin, die
struct sich selbst (oder die long long oder die ...) Variable:

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

or

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

Eine dritte Methode, mit dieser Schwierigkeit umzugehen, besteht darin, den 'Auto-Import' für die
anstößiges Symbol und markieren Sie es mit "__declspec(dllimport)". In der Praxis ist das jedoch
erfordert die Verwendung von #defines zur Kompilierzeit, um anzugeben, ob Sie eine DLL erstellen.
Erstellen von Clientcode, der mit der DLL verknüpft wird, oder lediglich das Erstellen/Verknüpfen mit einer statischen
Bücherei. Bei der Wahl zwischen den verschiedenen Methoden zur Auflösung des "direkten"
Adresse mit konstantem Offset' Problem, sollten Sie die typische Verwendung in der realen Welt berücksichtigen:

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, um eine funktionale
Schnittstelle statt einer Datenschnittstelle für die störenden Variablen (zB set_foo() und
get_foo () Accessor-Funktionen). [Diese Option ist spezifisch für den i386 PE-Zielport
des Linkers]

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

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

--disable-runtime-pseudo-reloc
Erstellen Sie keine Pseudoverlagerungen für DATEN-Importe ungleich Null aus DLLs. Das ist
der Standard. [Diese Option ist spezifisch für den i386 PE-Zielport des Linkers]

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

--Abschnittsausrichtung
Legt die Schnittausrichtung fest. Abschnitte im Speicher beginnen immer an Adressen, die
sind ein Vielfaches dieser Zahl. Standardmäßig 0x1000. [Diese Option ist spezifisch für die
i386 PE gezielter Port des Linkers]

--Stapel sowie das Hotel
--Stapel sowie das Hotel ,verpflichten
Geben Sie die zu reservierende (und optional zu übergebende) Speichermenge an, die als Stack verwendet werden soll
für dieses Programm. Der Standardwert ist 2 MB reserviert, 4 KB festgeschrieben. [Diese Option ist
spezifisch für den auf i386 PE gerichteten Port des Linkers]

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

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

--kein Trampolin
Diese Option deaktiviert die Trampolinerzeugung. Standardmäßig ist ein Trampolin
für jede far-Funktion generiert, die mit einer "jsr"-Anweisung aufgerufen wird (dieses
passiert, wenn ein Zeiger auf eine Fernfunktion genommen wird).

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


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 für ein Eingabeformat sein. Wenn es keine gibt
"GNUTARGET" in der Umgebung, ld verwendet das natürliche Format des Ziels. Wenn "GNUTARGET"
auf "Standard" gesetzt ist, versucht BFD, das Eingabeformat zu erkennen, indem es die Binärdatei untersucht
Eingabedateien; Diese Methode ist oft erfolgreich, aber es gibt potenzielle Mehrdeutigkeiten, da es
ist keine Methode, um sicherzustellen, dass die magische Zahl, die verwendet wird, um Objektdateiformate anzugeben,
einzigartig. Die Konfigurationsprozedur für BFD auf jedem System stellt jedoch die
konventionelles Format für dieses System zuerst in der Suchliste, damit Mehrdeutigkeiten aufgelöst werden
zugunsten der Konvention.

"LDEMULATION" bestimmt die Standardemulation, wenn Sie die -m Option. Die
Emulation kann verschiedene Aspekte des Linker-Verhaltens beeinflussen, insbesondere den Standard-Linker
Skript. Sie können die verfügbaren Emulationen mit dem - ausführlich or -V Optionen. Wenn die
-m Option nicht verwendet wird und die Umgebungsvariable "LDEMULATION" nicht definiert ist,
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 gesetzt, dann wird es standardmäßig nicht demangling
Symbole. Diese Umgebungsvariable wird in ähnlicher Weise vom "gcc"-Linker verwendet
Wrapper-Programm. Die Standardeinstellung kann durch die . überschrieben werden --demangle und -No-Demangle
Optionen.

Verwenden Sie h8300-hms-ld online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    DivFix + +
    DivFix + +
    DivFix++ ist Ihre AVI-Videoreparatur und
    Vorschau-Software. Es ist für die Reparatur konzipiert
    und Vorschaudateien, die heruntergeladen werden
    von ed2k(emule), torrent, gnutella, ftp...
    Laden Sie DivFix++ herunter
  • 2
    JBoss-Community
    JBoss-Community
    Community-gesteuerte Projekte mit dem
    neueste Innovationen für Spitzenreiter
    Anwendungen. Unser Vorzeigeprojekt ist JBoss AS
    die führende Open Source,
    normgerecht...
    Laden Sie die JBoss-Community herunter
  • 3
    Django-Filer
    Django-Filer
    Django Filer ist eine Dateiverwaltung
    Anwendung für Django, die macht
    Umgang mit Dateien und Bildern ein Kinderspiel.
    django-filer ist eine Dateiverwaltung
    Bewerbung für Djang...
    Laden Sie Django Filer herunter
  • 4
    xCAT
    xCAT
    Extreme Cluster Administration Toolkit.
    xCAT ist ein skalierbares Cluster-Management
    und Bereitstellungstool, das Folgendes bereitstellt
    Hardwaresteuerung, Erkennung und Betriebssystem
    diskful/di...
    Laden Sie xCAT herunter
  • 5
    Hunde
    Hunde
    Psi ist ein plattformübergreifendes, leistungsstarkes XMPP
    Client für erfahrene Benutzer.
    Es sind Builds für MS verfügbar
    Windows, GNU/Linux und macOS. Zielgruppe:
    Endnutzer...
    Laden Sie Psi herunter
  • 6
    Blobby-Volley 2
    Blobby-Volley 2
    Offizielle Fortsetzung des berühmten
    Blobby Volley 1.x Arcade-Spiel.
    Zielgruppe: Endbenutzer/Desktop. Benutzer
    Schnittstelle: OpenGL, SDL. Programmierung
    Sprache: C++, Lua. C...
    Laden Sie Blobby Volley 2 herunter
  • Mehr »

Linux-Befehle

Ad