EngelsFransSpaans

Ad


OnWorks-favicon

aarch64-linux-gnu-ld.bfd - Online in de cloud

Voer aarch64-linux-gnu-ld.bfd uit in OnWorks gratis hostingprovider via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht aarch64-linux-gnu-ld.bfd die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


ld - De GNU-linker

KORTE INHOUD


ik [opties] objbestand ...

PRODUCTBESCHRIJVING


ld combineert een aantal object- en archiefbestanden, verplaatst hun gegevens en koppelt symbolen
referenties. Gewoonlijk is het uitvoeren van de laatste stap bij het compileren van een programma ld.

ld accepteert Linker Command Language-bestanden geschreven in een superset van AT&T's Link Editor
Command Language-syntaxis, om expliciete en totale controle over het koppelingsproces te bieden.

Deze man-pagina beschrijft de commandotaal niet; zie de ld vermelding in "info" voor volledige
details over de commandotaal en over andere aspecten van de GNU-linker.

Deze versie van ld gebruikt de BFD-bibliotheken voor algemene doeleinden om op objectbestanden te werken. Dit
toestaat ld om objectbestanden in veel verschillende formaten te lezen, combineren en schrijven ---voor
bijvoorbeeld COFF of "a.out". Verschillende formaten kunnen aan elkaar worden gekoppeld om elke
beschikbaar soort objectbestand.

Afgezien van zijn flexibiliteit, is de GNU-linker nuttiger dan andere linkers bij het leveren van:
diagnostische informatie. Veel linkers verlaten de executie onmiddellijk wanneer ze een
fout; wanneer mogelijk, ld blijft uitvoeren, zodat u andere fouten kunt identificeren
(of, in sommige gevallen, om ondanks de fout een uitvoerbestand te krijgen).

De GNU-linker ld is bedoeld om een ​​breed scala aan situaties te dekken en zo compatibel te zijn
mogelijk met andere linkers. Als gevolg hiervan heb je veel keuzes om zijn
gedrag.

OPTIES


De linker ondersteunt een overvloed aan opdrachtregelopties, maar in de praktijk zijn er maar weinig
worden gebruikt in een bepaalde context. Bijvoorbeeld, een frequent gebruik van ld is om te linken
standaard Unix-objectbestanden op een standaard, ondersteund Unix-systeem. Op een dergelijk systeem, om
koppel een bestand "hello.o":

ik wil /lib/crt0.o hallo.o -lc

Dit vertelt ld om een ​​bestand te produceren met de naam uitgang als resultaat van het koppelen van het bestand
"/lib/crt0.o" met "hello.o" en de bibliotheek "libc.a", die uit de standaard komt
zoek mappen. (Zie de bespreking van de -l optie hieronder.)

Enkele van de opdrachtregelopties om ld kan op elk punt in de opdrachtregel worden opgegeven.
Echter, opties die verwijzen naar bestanden, zoals -l or -T, zorg ervoor dat het bestand wordt gelezen op de
punt waar de optie verschijnt in de opdrachtregel, relatief ten opzichte van de objectbestanden en
andere bestandsopties. Het herhalen van niet-bestandsopties met een ander argument heeft ofwel:
geen verder effect, of overschrijf eerdere gebeurtenissen (die verder naar links op de opdracht)
regel) van die optie. Opties die zinvol meer dan eens kunnen worden gespecificeerd, zijn:
vermeld in de onderstaande beschrijvingen.

Niet-optie-argumenten zijn objectbestanden of archieven die aan elkaar moeten worden gekoppeld. Zij
kan volgen, voorafgaan aan of worden gemengd met opdrachtregelopties, behalve dat een objectbestand
argument mag niet tussen een optie en zijn argument worden geplaatst.

Gewoonlijk wordt de linker aangeroepen met ten minste één objectbestand, maar u kunt andere specificeren
vormen van binaire invoerbestanden met behulp van -l, -R, en de scriptopdrachttaal. Indien geen binair
invoerbestanden zijn gespecificeerd, de linker produceert geen uitvoer en geeft de
Bericht Nee invoer bestanden.

Als de linker het formaat van een objectbestand niet kan herkennen, gaat hij ervan uit dat het een
linker-script. Een script dat op deze manier is gespecificeerd, is een aanvulling op het hoofd-linker-script dat wordt gebruikt voor
de link (ofwel het standaard linker-script of degene die is gespecificeerd met behulp van -T). Deze
functie staat de linker toe om te linken naar een bestand dat lijkt op een object of een
archief, maar definieert eigenlijk slechts enkele symboolwaarden, of gebruikt "INPUT" of "GROUP" om
andere objecten laden. Het op deze manier specificeren van een script vergroot alleen de hoofdlinker
script, met de extra commando's achter het hoofdscript; gebruik de -T optie om te vervangen
het standaard linker-script volledig, maar let op het effect van de opdracht "INSERT".

Voor opties waarvan de naam uit één letter bestaat, moeten optieargumenten ofwel volgen op de
optie letter zonder tussenliggende witruimte, of worden gegeven als afzonderlijke argumenten
onmiddellijk na de optie die ze vereist.

Voor opties waarvan de namen uit meerdere letters bestaan, kunnen één of twee streepjes voorafgaan aan de
optie naam; bijvoorbeeld, -trace-symbool en --trace-symbool gelijkwaardig zijn. Opmerking --- daar:
is een uitzondering op deze regel. Opties voor meerdere letters die beginnen met een kleine 'o'
kan alleen worden voorafgegaan door twee streepjes. Dit is om verwarring met de -o optie. Dus
bij voorbeeld -omagisch stelt de naam van het uitvoerbestand in op magie terwijl --magisch stelt de NMAGIC . in
vlag op de uitgang.

Argumenten voor meerletterige opties moeten van de optienaam worden gescheiden door een
gelijkteken, of worden gegeven als afzonderlijke argumenten onmiddellijk na de optie dat
vereist hen. Bijvoorbeeld, --trace-symbool foo en --trace-symbool=foo zijn gelijkwaardig.
Unieke afkortingen van de namen van meerletterige opties worden geaccepteerd.

Opmerking --- als de linker indirect wordt aangeroepen, via een compiler-stuurprogramma (bijv gcc) dan
alle linker-opdrachtregelopties moeten worden voorafgegaan door -Wl, (of wat dan ook gepast is)
voor het specifieke compilerstuurprogramma) als volgt:

gcc -Wl,--start-groep foo.o bar.o -Wl,--eind-groep

Dit is belangrijk, omdat het compilerstuurprogramma anders de
linker-opties, wat resulteert in een slechte link. Er kan ook verwarring ontstaan ​​bij het doorgeven van opties
die waarden vereisen via een stuurprogramma, zoals het gebruik van een spatie tussen optie en argument
fungeert als scheidingsteken en zorgt ervoor dat de driver alleen de optie doorgeeft aan de linker en de
argument aan de compiler. In dit geval is het het eenvoudigst om de samengevoegde vormen van beide te gebruiken
opties voor één en meerdere letters, zoals:

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

Hier is een tabel met de algemene commandoregel-switches die door de GNU-linker worden geaccepteerd:

@filet
Lees opdrachtregelopties van filet. De gelezen opties worden ingevoegd in plaats van de
origineel @filet optie. Indien filet niet bestaat, of niet kan worden gelezen, dan is de optie
wordt letterlijk behandeld en niet verwijderd.

opties in filet worden gescheiden door witruimte. Een witruimteteken kan worden opgenomen
in een optie door de hele optie tussen enkele of dubbele aanhalingstekens te plaatsen. Ieder
teken (inclusief een backslash) kan worden toegevoegd door het teken voor te zetten dat moet worden
inclusief backslash. De filet kan zelf extra @ bevattenfilet opties; ieder
dergelijke opties worden recursief verwerkt.

-a trefwoord
Deze optie wordt ondersteund voor HP/UX-compatibiliteit. De trefwoord argument moet een van zijn
de touwtjes archief, gedeeldof verzuim. -archief is functioneel gelijk aan
-Bstatisch, en de andere twee trefwoorden zijn functioneel equivalent aan -Bdynamisch. Deze
optie kan een willekeurig aantal keren worden gebruikt.

--controleren AUDITLIB
Voegt AUDITLIB naar de invoer "DT_AUDIT" van de dynamische sectie. AUDITLIB is niet aangevinkt
voor bestaan, noch zal het de DT_SONAME gebruiken die in de bibliotheek is gespecificeerd. Indien gespecificeerd
meerdere keren zal "DT_AUDIT" een door dubbele punten gescheiden lijst van audit-interfaces bevatten om
gebruik maken van. Als de linker een object vindt met een controle-item tijdens het zoeken naar gedeeld
bibliotheken, zal het een corresponderend "DT_DEPAUDIT"-item toevoegen aan het uitvoerbestand. Dit
optie is alleen zinvol op ELF-platforms die de rtld-audit-interface ondersteunen.

-A architectuur
--architectuur=architectuur
In de huidige release van ld, is deze optie alleen nuttig voor de Intel 960-familie van
architecturen. In dat ld configuratie, de architectuur argument identificeert de
bepaalde architectuur in de 960-familie, waardoor enkele beveiligingen mogelijk zijn en de
archief-bibliotheek zoekpad.

Toekomstige releases van ld ondersteunt mogelijk vergelijkbare functionaliteit voor andere architectuur
families.

-b invoer formaat
--formaat=invoer formaat
ld kan worden geconfigureerd om meer dan één soort objectbestand te ondersteunen. Als jouw ld is
op deze manier geconfigureerd, kunt u de -b optie om het binaire formaat voor invoer op te geven
objectbestanden die deze optie volgen op de opdrachtregel. Zelfs wanneer ld is geconfigureerd
om alternatieve objectformaten te ondersteunen, hoeft u dit meestal niet op te geven, zoals: ld
moet worden geconfigureerd om als standaard invoerformaat het meest gebruikelijke formaat op elk te verwachten
machine. invoer formaat is een tekenreeks, de naam van een bepaald formaat ondersteund door
de BFD-bibliotheken. (U kunt de beschikbare binaire formaten weergeven met object -i.)

Misschien wilt u deze optie gebruiken als u bestanden koppelt met een ongebruikelijk binair bestand
formaat. Je kan ook gebruiken -b om expliciet van indeling te wisselen (bij het koppelen van objectbestanden)
van verschillende formaten), door het opnemen van -b invoer formaat voor elke groep objectbestanden
in een bepaald formaat.

Het standaardformaat is afkomstig van de omgevingsvariabele "GNUTARGET".

U kunt het invoerformaat ook definiëren vanuit een script, met behulp van het commando "TARGET";

-c MRI-opdrachtbestand
--mri-script=MRI-opdrachtbestand
Voor compatibiliteit met linkers geproduceerd door MRI, ld accepteert scriptbestanden geschreven in een
alternatieve, beperkte commandotaal, beschreven in de MRI Compatible Script Files
sectie van de GNU ld-documentatie. Introduceer MRI-scriptbestanden met de optie -c; gebruik
de -T optie om linkerscripts uit te voeren die zijn geschreven in het algemene doel ld scripting
taal. Indien MRI-cmd-bestand bestaat niet, ld zoekt het in de opgegeven mappen
door welke dan ook -L opties.

-d
-gelijkstroom
-dp Deze drie opties zijn gelijkwaardig; meerdere formulieren worden ondersteund voor compatibiliteit
met andere schakels. Ze wijzen ruimte toe aan veelvoorkomende symbolen, zelfs als een verplaatsbare uitvoer
bestand is opgegeven (met -r). Het scriptcommando "FORCE_COMMON_ALLOCATION" heeft de
zelfde uitwerking.

--depaudit AUDITLIB
-P AUDITLIB
Voegt AUDITLIB naar de invoer "DT_DEPAUDIT" van de dynamische sectie. AUDITLIB is niet
gecontroleerd op bestaan, noch zal het de in de bibliotheek gespecificeerde DT_SONAME gebruiken. Indien
meerdere keren opgegeven "DT_DEPAUDIT" zal een door dubbele punten gescheiden lijst van audit bevatten
interfaces te gebruiken. Deze optie is alleen zinvol op ELF-platforms die de
rtld-audit-interface. De optie -P is bedoeld voor compatibiliteit met Solaris.

-e toegang
--invoer=toegang
Te gebruiken toegang als het expliciete symbool voor het starten van de uitvoering van uw programma, in plaats van
het standaard toegangspunt. Als er geen symbool wordt genoemd toegang, zal de linker proberen om
ontleden toegang als een nummer, en gebruik dat als het invoeradres (het nummer wordt
geïnterpreteerd in grondtal 10; je mag een leidende gebruiken 0x voor basis 16, of een leidende 0 voor basis
8).

--exclude-libs lib,lib, ...
Specificeert een lijst met archiefbibliotheken waaruit symbolen niet automatisch zouden moeten zijn
geëxporteerd. De bibliotheeknamen kunnen worden gescheiden door komma's of dubbele punten. Specificeren
"--exclude-libs ALL" sluit symbolen in alle archiefbibliotheken uit van automatische export.
Deze optie is alleen beschikbaar voor de i386 PE-gerichte poort van de linker en voor ELF
gerichte poorten. Voor i386 PE zijn symbolen die expliciet worden vermeld in een .def-bestand nog steeds
geëxporteerd, ongeacht deze optie. Voor ELF-gerichte poorten, symbolen die hierdoor worden beïnvloed
optie wordt als verborgen behandeld.

--exclude-modules-voor-implib module,module, ...
Specificeert een lijst met objectbestanden of archiefleden, waarvan symbolen niet mogen zijn
automatisch geëxporteerd, maar die in het groot naar de importbibliotheek moet worden gekopieerd
gegenereerd tijdens de koppeling. De modulenamen kunnen worden gescheiden door komma's of
dubbele punten, en moeten exact overeenkomen met de bestandsnamen die worden gebruikt door ld om de bestanden te openen; voor archief
leden, dit is gewoon de naam van het lid, maar voor objectbestanden moet de vermelde naam
omvatten en matchen precies elk pad dat wordt gebruikt om het invoerbestand op de linker's . te specificeren
opdrachtregel. Deze optie is alleen beschikbaar voor de i386 PE-gerichte poort van de
koppelaar. Symbolen die expliciet in een .def-bestand worden vermeld, worden nog steeds geëxporteerd, ongeacht
deze optie.

-E
--export-dynamisch
--geen-export-dynamisch
Wanneer u een dynamisch gekoppeld uitvoerbaar bestand maakt, gebruikt u de -E optie of de
--export-dynamisch optie zorgt ervoor dat de linker alle symbolen toevoegt aan het dynamische symbool
tafel. De dynamische symbolentabel is de set symbolen die zichtbaar zijn vanuit dynamic
objecten tijdens runtime.

Als u geen van deze opties gebruikt (of de --geen-export-dynamisch optie om
herstel het standaardgedrag), bevat de tabel met dynamische symbolen normaal gesproken alleen
die symbolen waarnaar wordt verwezen door een dynamisch object dat in de link wordt genoemd.

Als je "dlopen" gebruikt om een ​​dynamisch object te laden dat moet verwijzen naar de symbolen
gedefinieerd door het programma, in plaats van een ander dynamisch object, dan zult u waarschijnlijk
moet deze optie gebruiken bij het koppelen van het programma zelf.

U kunt ook de dynamische lijst gebruiken om te bepalen welke symbolen moeten worden toegevoegd aan de
dynamische symbooltabel als het uitvoerformaat dit ondersteunt. Zie de beschrijving van
--dynamische-lijst.

Merk op dat deze optie specifiek is voor ELF-gerichte poorten. PE-doelen ondersteunen een vergelijkbare
functie om alle symbolen uit een DLL of EXE te exporteren; zie de beschrijving van
--export-alle-symbolen hieronder.

-EB Koppel big-endian-objecten. Dit heeft invloed op het standaard uitvoerformaat.

-DE Koppel little-endian-objecten. Dit heeft invloed op het standaard uitvoerformaat.

-f naam
--hulp=naam
Wanneer u een gedeeld ELF-object maakt, stelt u het interne veld DT_AUXILIARY in op de
opgegeven naam. Dit vertelt de dynamische linker dat de symbooltabel van de gedeelde
object moet worden gebruikt als een hulpfilter in de symbooltabel van het gedeelde object
naam.

Als u later een programma aan dit filterobject koppelt, dan, wanneer u de
programma, zal de dynamische linker het veld DT_AUXILIARY zien. Als de dynamische linker
alle symbolen uit het filterobject oplost, zal het eerst controleren of er een
definitie in het gedeelde object naam. Als er een is, wordt deze gebruikt in plaats van de
definitie in het filterobject. Het gedeelde object naam hoeft niet te bestaan. dus de
gedeeld object naam kan worden gebruikt om een ​​alternatieve implementatie van bepaalde
functies, misschien voor het opsporen van fouten of voor machinespecifieke prestaties.

Deze optie kan meerdere keren worden opgegeven. De DT_AUXILIARY-items worden gemaakt
in de volgorde waarin ze op de opdrachtregel verschijnen.

-F naam
--filter =naam
Wanneer u een gedeeld ELF-object maakt, stelt u het interne veld DT_FILTER in op het opgegeven
naam. Dit vertelt de dynamische linker dat de symbooltabel van het gedeelde object dat
wordt gemaakt, moet worden gebruikt als een filter op de symbooltabel van het gedeelde object
naam.

Als u later een programma aan dit filterobject koppelt, dan, wanneer u de
programma, zal de dynamische linker het veld DT_FILTER zien. De dynamische linker zal
los symbolen op volgens de symbolentabel van het filterobject zoals gewoonlijk, maar het
zal daadwerkelijk linken naar de definities in het gedeelde object naam. Dus de
filterobject kan worden gebruikt om een ​​subset van de symbolen te selecteren die door het object worden geleverd
naam.

Sommige oudere linkers gebruikten de -F optie in een compilatietoolchain voor
het specificeren van het objectbestandsformaat voor zowel invoer- als uitvoerobjectbestanden. De GNU-linker
gebruikt hiervoor andere mechanismen: de -b, --formaat, --oformat opties, de
"TARGET"-opdracht in linkerscripts en de omgevingsvariabele "GNUTARGET". de GNU
linker negeert de -F optie wanneer u geen gedeeld ELF-object maakt.

-fini=naam
Wanneer u een ELF uitvoerbaar of gedeeld object maakt, roept u NAME aan wanneer het uitvoerbare of
gedeeld object wordt verwijderd door DT_FINI in te stellen op het adres van de functie. Door
standaard gebruikt de linker "_fini" als de functie die moet worden aangeroepen.

-g Buiten beschouwing gelaten. Geleverd voor compatibiliteit met andere tools.

-G waarde
--gpgrootte=waarde
Stel de maximale grootte van te optimaliseren objecten in met behulp van het GP-register om grootte. Deze
is alleen zinvol voor objectbestandsindelingen zoals MIPS ELF die het zetten van large ondersteunen
en kleine voorwerpen in verschillende secties. Dit wordt genegeerd voor een ander objectbestand
formaten.

-h naam
-zonaam=naam
Wanneer u een gedeeld ELF-object maakt, stelt u het interne veld DT_SONAME in op het opgegeven
naam. Wanneer een uitvoerbaar bestand is gekoppeld aan een gedeeld object dat een DT_SONAME-veld heeft,
wanneer het uitvoerbare bestand wordt uitgevoerd, zal de dynamische linker proberen de gedeelde . te laden
object gespecificeerd door het veld DT_SONAME in plaats van het gebruik van de bestandsnaam gegeven aan
de koppelaar.

-i Voer een incrementele link uit (zelfde als optie -r).

-begin=naam
Wanneer u een ELF uitvoerbaar of gedeeld object maakt, roept u NAME aan wanneer het uitvoerbare of
gedeeld object wordt geladen door DT_INIT in te stellen op het adres van de functie. Door
standaard gebruikt de linker "_init" als de functie die moet worden aangeroepen.

-l naamspecificatie
--bibliotheek=naamspecificatie
Voeg het archief- of objectbestand toe gespecificeerd door naamspecificatie naar de lijst met te linken bestanden.
Deze optie kan een willekeurig aantal keren worden gebruikt. Indien naamspecificatie is van de vorm :bestandsnaam, ld
zoekt in het bibliotheekpad naar een bestand met de naam bestandsnaam, anders zoekt het de
bibliotheekpad voor een bestand met de naam libnaamspec.a.

Op systemen die gedeelde bibliotheken ondersteunen, ld kan ook naar andere bestanden zoeken dan
libnaamspec.a. Met name op ELF- en SunOS-systemen, ld zal een directory zoeken naar
een bibliotheek genaamd libnaamspec.so alvorens te zoeken naar een genaamd libnaamspec.a. (Door
conventie, een ".so" extensie geeft een gedeelde bibliotheek aan.) Merk op dat dit gedrag
geldt niet voor :bestandsnaam, die altijd een bestand specificeert met de naam bestandsnaam.

De linker doorzoekt een archief slechts één keer, op de locatie waar het is opgegeven
de opdrachtregel. Als het archief een symbool definieert dat niet gedefinieerd was in een object
die vóór het archief op de opdrachtregel verscheen, bevat de linker de
juiste bestand(en) uit het archief. Een ongedefinieerd symbool in een object
later verschijnen op de opdrachtregel zorgt er niet voor dat de linker het archief doorzoekt
weer.

Zie de -( optie voor een manier om de linker te dwingen om archieven meerdere keren te doorzoeken.

U kunt hetzelfde archief meerdere keren op de opdrachtregel weergeven.

Dit type zoeken in archieven is standaard voor Unix-linkers. Als u echter
gebruik ld op AIX, merk op dat het verschilt van het gedrag van de AIX-linker.

-L zoekmap
--bibliotheek-pad=zoekmap
Pad toevoegen zoekmap naar de lijst met paden die ld zal zoeken naar archiefbibliotheken en
ld controle scripts. U kunt deze optie een onbeperkt aantal keren gebruiken. De mappen zijn:
doorzocht in de volgorde waarin ze zijn opgegeven op de opdrachtregel. Directory's
die op de opdrachtregel zijn opgegeven, worden doorzocht vóór de standaardmappen. Alle -L
opties gelden voor iedereen -l opties, ongeacht de volgorde waarin de opties verschijnen.
-L opties hebben geen invloed op hoe ld zoekt naar een linkerscript tenzij -T Optie is
gespecificeerd.

If zoekmap begint met "=", dan wordt "=" vervangen door de systeemroot voorvoegsel,
gecontroleerd door de --sysroot optie, of opgegeven wanneer de linker is geconfigureerd.

De standaard set van gezochte paden (zonder te specificeren met -L) hangt ervan af welke
emulatie modus ld gebruikt, en in sommige gevallen ook over hoe het is geconfigureerd.

De paden kunnen ook worden opgegeven in een linkscript met het commando "SEARCH_DIR".
Op deze manier gespecificeerde mappen worden doorzocht op het punt waar het linkerscript
verschijnt in de opdrachtregel.

-m wedijver
emuleren de wedijver koppelaar. U kunt de beschikbare emulaties weergeven met de
--uitgebreid or -V opties.

Indien de -m optie niet wordt gebruikt, is de emulatie afkomstig uit de "LDEMULATION"
omgevingsvariabele, als die is gedefinieerd.

Anders hangt de standaardemulatie af van hoe de linker is geconfigureerd.

-M
--print-kaart
Druk een linkmap af naar de standaarduitvoer. Een linkkaart geeft informatie over de
link, waaronder het volgende:

· Waar objectbestanden worden toegewezen aan het geheugen.

· Hoe gemeenschappelijke symbolen worden toegewezen.

· Alle archiefleden opgenomen in de link, met vermelding van het symbool dat
zorgde ervoor dat het archieflid werd binnengebracht.

· De waarden die aan symbolen zijn toegewezen.

Opmerking - symbolen waarvan de waarden worden berekend door een uitdrukking met a
verwijzing naar een eerdere waarde van hetzelfde symbool heeft mogelijk niet het juiste resultaat
weergegeven in de linkkaart. Dit komt omdat de linker tussenliggende weggooit
resultaten en behoudt alleen de uiteindelijke waarde van een uitdrukking. onder zulke
omstandigheden zal de linker de uiteindelijke waarde tussen vierkante haken weergeven.
Dus bijvoorbeeld een linkerscript met daarin:

foe = 1
foe = foe * 4
foe = foe + 8

zal de volgende uitvoer in de linkmap produceren als de -M optie wordt gebruikt:

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

Bekijk Uitdrukkingen voor meer informatie over expressies in linkerscripts.

-n
--magisch
Schakel pagina-uitlijning van secties uit en schakel koppelingen met gedeelde bibliotheken uit. Indien
het uitvoerformaat ondersteunt magische getallen in Unix-stijl, markeer de uitvoer als "NMAGIC".

-N
--magisch
Stel de tekst- en gegevenssecties in om leesbaar en beschrijfbaar te zijn. Ook niet pagina-uitlijnen
het gegevenssegment en schakel het koppelen met gedeelde bibliotheken uit. Als het uitvoerformaat
ondersteunt Unix-stijl magische getallen, markeer de uitvoer als "OMAGIC". Opmerking: hoewel een
beschrijfbare tekstsectie is toegestaan ​​voor PE-COFF-doelen, het voldoet niet aan de
formaatspecificatie gepubliceerd door Microsoft.

--geen-magisch
Deze optie heft de meeste effecten van de -N optie. Het stelt de tekstsectie in op
alleen-lezen zijn en dwingt het gegevenssegment om pagina-uitgelijnd te zijn. Opmerking - deze optie doet:
niet inschakelen voor gedeelde bibliotheken. Gebruik maken van -Bdynamisch voor deze.

-o uitgang
--uitvoer=uitgang
Te gebruiken uitgang als de naam voor het programma geproduceerd door ld; als deze optie niet is
opgegeven, de naam a.out wordt standaard gebruikt. Het scriptcommando "OUTPUT" kan ook:
specificeer de naam van het uitvoerbestand.

-O niveau
If niveau is een numerieke waarde groter dan nul ld optimaliseert de uitvoer. Dit kan
aanzienlijk langer duren en zou daarom waarschijnlijk alleen moeten worden ingeschakeld voor de finale
binair. Op dit moment heeft deze optie alleen invloed op het genereren van gedeelde ELF-bibliotheken. Toekomst
releases van de linker kunnen meer gebruik maken van deze optie. Momenteel is er ook geen
verschil in het gedrag van de linker voor verschillende niet-nulwaarden van deze optie.
Nogmaals, dit kan veranderen met toekomstige releases.

--push-status
De --push-status maakt het mogelijk om de huidige staat van de vlaggen die de beheersen te behouden
verwerking van invoerbestanden, zodat ze allemaal kunnen worden hersteld met één corresponderende
--pop-staat optie.

De opties die worden gedekt zijn: -Bdynamisch, -Bstatisch, -dn, -dy, -bel_gedeeld,
-niet_gedeeld, -statisch, -N, -n, --geheel-archief, --geen-geheel-archief, -r, -Uw,
--copy-dt-nodige-invoeren, --no-copy-dt-nodige-invoeren, --als-nodig, --niet-zoals-nodig,
en -a.

Een doel voor deze optie zijn specificaties voor: pkg-config. Bij gebruik met de
--lib optie alle eventueel benodigde bibliotheken worden weergegeven en eventueel gekoppeld met
altijd. Het is beter om iets als volgt terug te sturen:

-Wl,--push-state,--zoals nodig -libone -libtwo -Wl,--pop-state

Maakt het effect van --push-state ongedaan, herstelt de vorige waarden van de vlaggen die van toepassing zijn
verwerking van invoerbestanden.

-q
--uitzenden-relocs
Verlaat secties en inhoud van verhuizingen in volledig gekoppelde uitvoerbare bestanden. Link plaatsen
analyse- en optimalisatietools hebben deze informatie mogelijk nodig om correct uit te voeren
wijzigingen van uitvoerbare bestanden. Dit resulteert in grotere uitvoerbare bestanden.

Deze optie wordt momenteel alleen ondersteund op ELF-platforms.

--kracht-dynamisch
Forceer het uitvoerbestand om dynamische secties te hebben. Deze optie is specifiek voor VxWorks
targets.

-r
--verplaatsbaar
Genereer verplaatsbare uitvoer --- dwz genereer een uitvoerbestand dat op zijn beurt kan dienen als:
invoer voor ld. Dit wordt vaak genoemd partieel Koppeling. Als bijwerking, in omgevingen
die standaard Unix-magische getallen ondersteunen, stelt deze optie ook de uitvoerbestanden in
magisch getal naar "OMAGIC". Als deze optie niet is opgegeven, is een absoluut bestand
geproduceerd. Bij het koppelen van C++-programma's is deze optie wil niet verwijzingen naar oplossen
aannemers; om dat te doen, gebruik -Uw.

Wanneer een invoerbestand niet hetzelfde formaat heeft als het uitvoerbestand, gedeeltelijke koppeling
wordt alleen ondersteund als dat invoerbestand geen verhuizingen bevat. Verschillend
uitvoerformaten kunnen verdere beperkingen hebben; bijvoorbeeld sommige "a.out"-gebaseerde formaten
ondersteunen helemaal geen gedeeltelijke koppeling met invoerbestanden in andere formaten.

Deze optie doet hetzelfde als -i.

-R bestandsnaam
--alleen-symbolen=bestandsnaam
Lees symboolnamen en hun adressen uit bestandsnaam, maar niet verplaatsen of opnemen
het in de uitvoer. Hierdoor kan uw uitvoerbestand symbolisch verwijzen naar absoluut
geheugenlocaties gedefinieerd in andere programma's. U kunt deze optie vaker gebruiken dan:
een keer.

Voor compatibiliteit met andere ELF-linkers, als de -R optie wordt gevolgd door een map
naam, in plaats van een bestandsnaam, wordt het behandeld als de -rpad optie.

-s
--strip-alles
Laat alle symboolinformatie uit het uitvoerbestand weg.

-S
--strip-debuggen
Laat debugger-symboolinformatie (maar niet alle symbolen) weg uit het uitvoerbestand.

-t
--spoor
Druk de namen van de invoerbestanden af ​​als ld verwerkt ze.

-T Script bestand
--script=Script bestand
Te gebruiken Script bestand als het linkerscript. Dit script vervangt ld's standaard linker-script
(in plaats van er iets aan toe te voegen), dus commandobestand moet alles specificeren wat nodig is om
beschrijf het uitvoerbestand. Indien Script bestand bestaat niet in de huidige map,
"ld" zoekt het in de mappen gespecificeerd door een van de voorgaande -L opties. Meerdere
-T opties stapelen zich op.

-DT Script bestand
--standaard-script=Script bestand
Te gebruiken Script bestand als het standaard linkerscript.

Deze optie is vergelijkbaar met de --script optie behalve dat de verwerking van het script is
vertraagd tot nadat de rest van de opdrachtregel is verwerkt. Dit maakt het mogelijk
opties geplaatst na de --standaard-script optie op de opdrachtregel om de . te beïnvloeden
gedrag van het linker-script, wat belangrijk kan zijn wanneer de linker-opdrachtregel
kan niet rechtstreeks door de gebruiker worden bestuurd. (bijv. omdat de opdrachtregel wordt
geconstrueerd door een ander hulpmiddel, zoals: gcc).

-u symbool
--ongedefinieerd=symbool
Dwingen symbool in het uitvoerbestand in te voeren als een niet-gedefinieerd symbool. Dit doen kan,
trigger bijvoorbeeld het koppelen van extra modules uit standaardbibliotheken. -u kan zijn
herhaald met verschillende optieargumenten om extra ongedefinieerde symbolen in te voeren. Dit
optie is gelijk aan de "EXTERN" linker scriptopdracht.

Als deze optie wordt gebruikt om extra modules te forceren om in de link te worden getrokken,
en als het een fout is dat het symbool ongedefinieerd blijft, dan is de optie
--vereis-gedefinieerd moet in plaats daarvan worden gebruikt.

--require-gedefinieerd=symbool
Vereisen dat symbool is gedefinieerd in het uitvoerbestand. Deze optie is hetzelfde als optie
--onbepaald behalve dat als symbool is niet gedefinieerd in het uitvoerbestand, dan is de linker
zal een foutmelding geven en afsluiten. Hetzelfde effect kan worden bereikt in een linkerscript door:
door "EXTERN", "ASSERT" en "DEFINED" samen te gebruiken. Deze optie kan meerdere worden gebruikt
keer om extra symbolen te vereisen.

-Uw Voor iets anders dan C++-programma's is deze optie gelijk aan: -r: het genereert
verplaatsbare uitvoer --- dat wil zeggen, een uitvoerbestand dat op zijn beurt kan dienen als invoer voor ld. Wanneer
C++ programma's koppelen, -Uw doet verwijzingen naar constructors oplossen, in tegenstelling tot -r. Het doet
niet werken om te gebruiken -Uw op bestanden die zelf waren gekoppeld aan -Uw​ zodra de
constructortabel is gebouwd, kan er niet aan worden toegevoegd. Gebruik maken van -Uw alleen voor de laatste
gedeeltelijke link, en -r voor de anderen.

--wees-handling=MODE
Bepaal hoe weessecties worden afgehandeld. Een weessectie is er een die niet specifiek is
vermeld in een linkerscript.

MODE kan een van de volgende waarden hebben:

"plaats"
Weessecties worden in een geschikte uitvoersectie geplaatst volgens de strategie
beschreven in Wees Secties. De optie --uniek beïnvloedt ook hoe secties zijn
geplaatst.

"weggooien"
Alle weessecties worden weggegooid door ze in de /WEGGOOIEN/ pagina.

"waarschuwen"
De linker zal de weessectie plaatsen als voor "plaats" en ook een waarschuwing geven.

"fout"
De linker wordt afgesloten met een foutmelding als er een weessectie wordt gevonden.

De standaard als --behandeling van weeskinderen niet is gegeven is "plaats".

--uniek[=SECTIE]
Creëert een aparte uitvoersectie voor elke overeenkomende invoersectie SECTIE, of als het
optioneel jokerteken SECTIE argument ontbreekt, voor elke weesinvoersectie. Een
weessectie is er een die niet specifiek wordt genoemd in een linkerscript. Je mag dit gebruiken
optie meerdere keren op de opdrachtregel; Het voorkomt de normale samenvoeging van invoer
secties met dezelfde naam, waarbij toewijzingen van uitvoersecties in een linkerscript worden overschreven.

-v
--versie
-V Geef het versienummer weer voor ld. De -V optie geeft ook de ondersteunde emulaties weer.

-x
--alles weggooien
Verwijder alle lokale symbolen.

-X
--gooi de lokale bevolking weg
Verwijder alle tijdelijke lokale symbolen. (Deze symbolen beginnen met systeemspecifiek lokaal
labelvoorvoegsels, meestal .L voor ELF-systemen of L voor traditionele a.out-systemen.)

-y symbool
--trace-symbool=symbool
Druk de naam af van elk gekoppeld bestand waarin: symbool verschijnt. Deze optie kan worden gegeven
een willekeurig aantal keren. Op veel systemen moet een onderstrepingsteken worden toegevoegd.

Deze optie is handig als je een ongedefinieerd symbool in je link hebt, maar je weet het niet
waar de verwijzing vandaan komt.

-Y pad
Toevoegen pad naar het standaard bibliotheekzoekpad. Deze optie bestaat voor Solaris
compatibiliteit.

-z trefwoord
De erkende trefwoorden zijn:

combiloc
Combineert meerdere reloc-secties en sorteert ze om dynamisch opzoeken van symbolen te maken
caching mogelijk.

defs
Niet-gedefinieerde symbolen in objectbestanden zijn niet toegestaan. Ongedefinieerde symbolen in gedeeld
bibliotheken zijn nog steeds toegestaan.

uitvoerstapel
Markeert het object als een uitvoerbare stapel vereist.

globaal
Deze optie is alleen zinvol bij het bouwen van een gedeeld object. Het maakt de
symbolen gedefinieerd door dit gedeelde object beschikbaar voor symboolresolutie van
vervolgens geladen bibliotheken.

eerst
Deze optie is alleen zinvol bij het bouwen van een gedeeld object. Het markeert het object
zodat de runtime-initialisatie plaatsvindt vóór de runtime-initialisatie van
alle andere objecten die tegelijkertijd in het proces worden gebracht. evenzo de
runtime finalisatie van het object zal plaatsvinden na de runtime finalisatie van
eventuele andere objecten.

tussenbeide komen
Markeert het object dat zijn symbolentabel vóór alle symbolen plaatst, behalve de
primair uitvoerbaar bestand.

lui
Wanneer u een uitvoerbare of gedeelde bibliotheek genereert, markeer deze dan om de dynamiek te vertellen
linker om de resolutie van de functie-aanroep uit te stellen tot het punt waarop de functie wordt aangeroepen
(luie binding), in plaats van tijdens het laden. Lazy binding is de standaard.

laadfltr
Markeert het object dat de filters ervan onmiddellijk tijdens runtime worden verwerkt.

Muldefs
Staat meerdere definities toe.

geencombreloc
Schakelt het combineren van meerdere verplaatsingssecties uit.

nocopyreloc
Schakel door de linker gegenereerde .dynbss-variabelen uit die worden gebruikt in plaats van variabelen die zijn gedefinieerd in
gedeelde bibliotheken. Kan leiden tot dynamische tekstverplaatsingen.

knooppuntdefaultlib
Markeert het object dat de zoektocht naar afhankelijkheden van dit object zal negeren
standaard bibliotheekzoekpaden.

knooppunt
Markeert dat het object niet tijdens runtime moet worden verwijderd.

knikken
Markeert het object niet beschikbaar voor "dlopen".

nodump
Geeft aan dat het object niet kan worden gedumpt door "dldump".

geenexecstack
Markeert het object als geen uitvoerbare stapel vereist.

tekst
Behandel DT_TEXTREL in gedeeld object als fout.

geen tekst
Behandel DT_TEXTREL in een gedeeld object niet als een fout.

tekstuit
Behandel DT_TEXTREL in een gedeeld object niet als een fout.

norelro
Maak geen ELF "PT_GNU_RELRO" segmentkoptekst in het object.

nu Wanneer u een uitvoerbare of gedeelde bibliotheek genereert, markeer deze dan om de dynamiek te vertellen
linker om alle symbolen op te lossen wanneer het programma wordt gestart, of wanneer de gedeelde
bibliotheek is gekoppeld aan het gebruik van dlopen, in plaats van de oplossing van functieaanroepen uit te stellen
tot het punt waarop de functie voor het eerst wordt aangeroepen.

herkomst
Markeert dat het object $ORIGIN mag bevatten.

terug
Maak een ELF "PT_GNU_RELRO" segmentkoptekst in het object.

max-paginagrootte=waarde
Stel het maximale paginaformaat voor emulatie in op waarde.

common-page-size=waarde
Stel het gemeenschappelijke paginaformaat voor emulatie in op waarde.

stapelgrootte=waarde
Specificeer een stapelgrootte voor in een ELF "PT_GNU_STACK" segment. Het specificeren van nul wil
overschrijven elke standaard niet-nul-formaat "PT_GNU_STACK" segment creatie.

bndplt
Genereer altijd BND-prefix in PLT-vermeldingen. Ondersteund voor Linux/x86_64.

geen extern beveiligde gegevens
Behandel het beschermde gegevenssymbool niet als extern bij het bouwen van een gedeelde bibliotheek. Dit
optie overschrijft de linker backend standaard. Het kan worden gebruikt om onjuiste oplossingen te omzeilen
verplaatsingen tegen beschermde datasymbolen gegenereerd door compiler. Updates op
beveiligde gegevenssymbolen door een andere module zijn niet zichtbaar voor de resulterende gedeelde
bibliotheek. Ondersteund voor i386 en x86-64.

call-nop=voorvoegsel-adr
call-nop=voorvoegsel-nop
call-nop=achtervoegsel-nop
call-nop=voorvoegsel-byte
call-nop=achtervoegsel-byte
Specificeer de 1-byte "NOP" opvulling bij het transformeren van een indirecte oproep naar een lokaal
gedefinieerde functie, foo, via de GOT-sleuf. call-nop=voorvoegsel-adr genereert "0x67
bel foo". call-nop=voorvoegsel-nop genereert "0x90 call foo". call-nop=achtervoegsel-nop
genereert "call foo 0x90". call-nop=voorvoegsel-byte genereert "byte Bellen foo".
call-nop=achtervoegsel-byte genereert "call foo" byte". Ondersteund voor i386 en x86_64.

Andere trefwoorden worden genegeerd voor compatibiliteit met Solaris.

-( archief -)
--start-groep archief --eindgroep
De archief zou een lijst met archiefbestanden moeten zijn. Ze kunnen ofwel een expliciet bestand zijn
namen, of -l opties.

De opgegeven archieven worden herhaaldelijk doorzocht totdat er geen nieuwe ongedefinieerde verwijzingen zijn
gemaakt. Normaal gesproken wordt een archief slechts één keer doorzocht in de volgorde waarin het is opgegeven
op de opdrachtregel. Als een symbool in dat archief nodig is om een ​​ongedefinieerd probleem op te lossen
symbool waarnaar wordt verwezen door een object in een archief dat later op de opdrachtregel verschijnt,
de linker zou die verwijzing niet kunnen oplossen. Door de archieven te groeperen,
ze worden allemaal herhaaldelijk doorzocht totdat alle mogelijke verwijzingen zijn opgelost.

Het gebruik van deze optie brengt aanzienlijke prestatiekosten met zich mee. Het is het beste om het alleen te gebruiken wanneer:
er zijn onvermijdelijke kringverwijzingen tussen twee of meer archieven.

ccept-unknown-ingang-arch
--geen-accepteer-onbekende-invoerarch
Vertelt de linker om invoerbestanden te accepteren waarvan de architectuur niet kan worden herkend. De
aanname is dat de gebruiker weet wat hij doet en bewust wil linken
in deze onbekende invoerbestanden. Dit was het standaardgedrag van de linker, voorheen
vrijgeven 2.14. Het standaardgedrag vanaf release 2.14 is om dergelijke invoer te weigeren
bestanden, en dus de ccept-unknown-ingang-arch optie is toegevoegd om de oude . te herstellen
gedrag.

--als-nodig
--niet-zoals-nodig
Deze optie is van invloed op ELF DT_NEEDED-tags voor dynamische bibliotheken die in de opdracht worden genoemd
regel na de --als-nodig optie. Normaal gesproken voegt de linker een DT_NEEDED-tag toe voor
elke dynamische bibliotheek die op de opdrachtregel wordt vermeld, ongeacht of de bibliotheek
echt nodig is of niet. --als-nodig zorgt ervoor dat een DT_NEEDED-tag alleen wordt verzonden voor
een bibliotheek die at dat punt in de link voldoet aan een niet-zwak ongedefinieerd symbool
referentie uit een gewoon objectbestand of, als de bibliotheek niet wordt gevonden in de DT_NEEDED
lijsten van andere benodigde bibliotheken, een niet-zwakke ongedefinieerde symboolreferentie van een andere
benodigde dynamische bibliotheek. Objectbestanden of bibliotheken die op de opdrachtregel verschijnen na
de bibliotheek in kwestie heeft geen invloed op de vraag of de bibliotheek als nodig wordt gezien. Dit is
vergelijkbaar met de regels voor het extraheren van objectbestanden uit archieven. --niet-zoals-nodig
herstelt het standaardgedrag.

--toevoegen-nodig
--geen-toevoegen-nodig
Deze twee opties zijn verouderd vanwege de gelijkenis van hun namen met de
--als-nodig en --niet-zoals-nodig opties. Ze zijn vervangen door
--copy-dt-nodige-invoeren en --no-copy-dt-nodige-invoeren.

-beweren trefwoord
Deze optie wordt genegeerd voor compatibiliteit met SunOS.

-Bdynamisch
-dy
-bel_gedeeld
Link tegen dynamische bibliotheken. Dit is alleen zinvol op platforms waarvoor gedeelde
bibliotheken worden ondersteund. Deze optie is normaal gesproken de standaardinstelling op dergelijke platforms. De
verschillende varianten van deze optie zijn voor compatibiliteit met verschillende systemen. Jij mag
gebruik deze optie meerdere keren op de opdrachtregel: het heeft invloed op het zoeken in de bibliotheek naar
-l opties die erop volgen.

-Bgroep
Stel de vlag "DF_1_GROUP" in bij het item "DT_FLAGS_1" in de dynamische sectie. Dit
zorgt ervoor dat de runtime-linker zoekopdrachten in dit object afhandelt en dat de afhankelijkheden ervan zijn
alleen binnen de groep uitgevoerd. --unresolved-symbols=alles rapporteren wordt geïmpliceerd. Dit
optie is alleen zinvol op ELF-platforms die gedeelde bibliotheken ondersteunen.

-Bstatisch
-dn
-niet_gedeeld
-statisch
Link niet naar gedeelde bibliotheken. Dit is alleen zinvol op platforms waarvoor:
gedeelde bibliotheken worden ondersteund. De verschillende varianten van deze optie zijn voor
compatibiliteit met verschillende systemen. U kunt deze optie meerdere keren gebruiken op de
opdrachtregel: het heeft invloed op het zoeken in de bibliotheek naar -l opties die erop volgen. Dit
optie houdt ook in: --unresolved-symbols=alles rapporteren. Deze optie kan worden gebruikt met:
-gedeeld. Als u dit doet, betekent dit dat er een gedeelde bibliotheek wordt gemaakt, maar dat alle
externe verwijzingen van de bibliotheek moeten worden opgelost door vermeldingen uit static . te halen
bibliotheken.

-Bsymbolisch
Wanneer u een gedeelde bibliotheek maakt, bindt u verwijzingen naar globale symbolen aan de definitie
binnen de gedeelde bibliotheek, indien aanwezig. Normaal gesproken is het mogelijk voor een programma gekoppeld
tegen een gedeelde bibliotheek om de definitie binnen de gedeelde bibliotheek te negeren. Dit
optie kan ook worden gebruikt met de --export-dynamisch optie, bij het maken van een positie
onafhankelijk uitvoerbaar bestand, om verwijzingen naar globale symbolen te binden aan de definitie binnen
het uitvoerbare bestand. Deze optie is alleen zinvol op ELF-platforms die shared . ondersteunen
bibliotheken en positie-onafhankelijke uitvoerbare bestanden.

-Bsymbolische-functies
Wanneer u een gedeelde bibliotheek maakt, bindt u verwijzingen naar globale functiesymbolen aan de
definitie binnen de gedeelde bibliotheek, indien aanwezig. Deze optie kan ook worden gebruikt met de
--export-dynamisch optie, bij het maken van een positie-onafhankelijk uitvoerbaar bestand, om te binden
verwijzingen naar globale functiesymbolen naar de definitie in het uitvoerbare bestand. Dit
optie is alleen zinvol op ELF-platforms die gedeelde bibliotheken en positie ondersteunen
onafhankelijke uitvoerbare bestanden.

--dynamische-lijst=dynamisch-lijst-bestand
Geef de naam van een dynamisch lijstbestand op voor de linker. Dit wordt meestal gebruikt wanneer:
gedeelde bibliotheken maken om een ​​lijst met globale symbolen op te geven waarvan de verwijzingen
mag niet gebonden zijn aan de definitie binnen de gedeelde bibliotheek, of creëren
dynamisch gekoppelde uitvoerbare bestanden om een ​​lijst met symbolen te specificeren die moeten worden toegevoegd aan
de symbolentabel in het uitvoerbare bestand. Deze optie is alleen zinvol op ELF-platforms
die gedeelde bibliotheken ondersteunen.

Het formaat van de dynamische lijst is hetzelfde als het versieknooppunt zonder bereik en knooppunt
naam. Zien VERSIE voor meer informatie.

--dynamische-lijst-gegevens
Voeg alle globale gegevenssymbolen toe aan de dynamische lijst.

--dynamische-lijst-cpp-nieuw
Geef de ingebouwde dynamische lijst voor C++-operator nieuw en verwijder. Het is vooral handig
voor het bouwen van gedeelde libstdc++.

--dynamische-lijst-cpp-typeinfo
Geef de ingebouwde dynamische lijst op voor de identificatie van het C++-runtimetype.

--check-secties
--no-check-secties
Vraagt ​​de linker niet om sectie-adressen te controleren nadat ze zijn toegewezen om te zien of
er zijn overlappingen. Normaal gesproken voert de linker deze controle uit, en als hij vindt
eventuele overlappingen zullen geschikte foutmeldingen opleveren. De linker weet er wel van, en
houdt wel rekening met secties in overlays. Het standaardgedrag kan worden hersteld
met behulp van de opdrachtregelschakelaar --check-secties. Sectie overlap is meestal niet
gecontroleerd op verplaatsbare links. U kunt in dat geval de controle forceren met behulp van de
--check-secties optie.

--copy-dt-nodige-invoeren
--no-copy-dt-nodige-invoeren
Deze optie beïnvloedt de behandeling van dynamische bibliotheken waarnaar wordt verwezen door DT_NEEDED-tags
binnen ELF dynamische bibliotheken vermeld op de opdrachtregel. Normaal gesproken zal de linker niet
voeg een DT_NEEDED-tag toe aan de uitvoer binary voor elke bibliotheek die wordt vermeld in een DT_NEEDED-tag
in een dynamische invoerbibliotheek. Met --copy-dt-nodige-invoeren gespecificeerd op de opdracht
regel, maar alle dynamische bibliotheken die erop volgen, hebben hun DT_NEEDED-items
toegevoegd. Het standaardgedrag kan worden hersteld met --no-copy-dt-nodige-invoeren.

Deze optie heeft ook effect op de resolutie van symbolen in dynamische bibliotheken.
met --copy-dt-nodige-invoeren dynamische bibliotheken die op de opdrachtregel worden vermeld, zijn:
recursief gezocht, hun DT_NEEDED-tags volgend naar andere bibliotheken, om
symbolen oplossen die vereist zijn door het uitvoer binaire bestand. Met de standaardinstelling echter de
het zoeken naar dynamische bibliotheken die erop volgen, stopt met de dynamische bibliotheek
zelf. Er worden geen DT_NEEDED-links doorlopen om symbolen op te lossen.

--cref
Voer een kruisverwijzingstabel uit. Als een linker-mapbestand wordt gegenereerd, wordt het kruis
referentietabel wordt afgedrukt naar het kaartbestand. Anders wordt het afgedrukt op de standaard
uitgang.

Het formaat van de tabel is opzettelijk eenvoudig, zodat het gemakkelijk kan worden verwerkt door:
eventueel een draaiboek. De symbolen worden uitgeprint, gesorteerd op naam. Voor elk symbool,
er wordt een lijst met bestandsnamen gegeven. Als het symbool is gedefinieerd, is het eerste bestand dat wordt weergegeven de
plaats van de definitie. Als het symbool is gedefinieerd als een algemene waarde, dan zijn alle bestanden
waar dit gebeurt, wordt hierna weergegeven. Ten slotte zijn alle bestanden die naar het symbool verwijzen:
vermeld.

--geen-definieer-algemeen
Deze optie verhindert de toewijzing van adressen aan algemene symbolen. Het script
commando "INHIBIT_COMMON_ALLOCATION" heeft hetzelfde effect.

De --geen-definieer-algemeen optie maakt het ontkoppelen van de beslissing om adressen toe te wijzen aan
Gemeenschappelijke symbolen uit de keuze van het uitvoerbestandstype; anders een niet-verplaatsbare
uitvoertype dwingt adressen toe aan algemene symbolen. Gebruik makend van --geen-definieer-algemeen
staat toe dat gemeenschappelijke symbolen waarnaar wordt verwezen vanuit een gedeelde bibliotheek worden toegewezen
adressen alleen in het hoofdprogramma. Dit elimineert de ongebruikte dubbele ruimte in de
gedeelde bibliotheek, en voorkomt ook mogelijke verwarring over het oplossen van de verkeerde
dupliceren wanneer er veel dynamische modules zijn met gespecialiseerde zoekpaden voor
runtime symbool resolutie.

--defsym=symbool=uitdrukking
Maak een globaal symbool in het uitvoerbestand, dat het absolute adres bevat dat wordt gegeven door
uitdrukking. U kunt deze optie zo vaak gebruiken als nodig is om meerdere
symbolen in de opdrachtregel. Een beperkte vorm van rekenen wordt ondersteund voor de
uitdrukking in deze context: je mag een hexadecimale constante geven of de naam van an
bestaand symbool, of gebruik "+" en "-" om hexadecimale constanten op te tellen of af te trekken of
symbolen. Als je meer uitgebreide uitdrukkingen nodig hebt, overweeg dan om het linker-commando te gebruiken
taal uit een script. Opmerking: er mag geen witruimte tussen zijn symbool
is gelijk aan teken ("="), en uitdrukking.

--ontwarren[=stijl]
--geen-demangle
Deze opties bepalen of symboolnamen in foutmeldingen en andere moeten worden ontmanteld
uitvoer. Wanneer de linker wordt verteld om te ontmantelen, probeert hij symboolnamen te presenteren in a
leesbare mode: het verwijdert de leidende onderstrepingstekens als ze worden gebruikt door het objectbestand
formaat, en converteert C++ verminkte symboolnamen naar voor de gebruiker leesbare namen. Verschillend
compilers hebben verschillende mangling-stijlen. Het optionele demangling-stijlargument kan:
worden gebruikt om een ​​geschikte demangling-stijl voor uw compiler te kiezen. De linker zal
demangle standaard tenzij de omgevingsvariabele COLLECT_NO_DEMANGLE is ingesteld. Deze
opties kunnen worden gebruikt om de standaard te overschrijven.

-Ifilet
--dynamische-linker=filet
Stel de naam van de dynamische linker in. Dit is alleen zinvol bij het genereren van
dynamisch gekoppelde ELF-uitvoerbare bestanden. De standaard dynamische linker is normaal gesproken correct;
gebruik dit niet tenzij u weet wat u doet.

--geen-dynamische-linker
Bij het produceren van een uitvoerbaar bestand, laat het verzoek om een ​​dynamische linker te gebruiken op
laadtijd. Dit is alleen zinvol voor ELF-uitvoerbare bestanden die dynamic . bevatten
verhuizingen, en vereist meestal een toegangspuntcode die deze kan verwerken
verhuizingen.

--fatale-waarschuwingen
--geen-fatale-waarschuwingen
Behandel alle waarschuwingen als fouten. Het standaardgedrag kan worden hersteld met de optie
--geen-fatale-waarschuwingen.

--force-exe-achtervoegsel
Zorg ervoor dat een uitvoerbestand een .exe-achtervoegsel heeft.

Als een succesvol gebouwd volledig gekoppeld uitvoerbestand geen ".exe" of ".dll" heeft
achtervoegsel, dwingt deze optie de linker om het uitvoerbestand naar een bestand met dezelfde naam te kopiëren
met het achtervoegsel ".exe". Deze optie is handig bij het gebruik van ongewijzigde Unix-makefiles op een
Microsoft Windows-host, aangezien sommige versies van Windows geen afbeelding uitvoeren tenzij deze
eindigt op een ".exe" achtervoegsel.

--gc-secties
--geen-gc-secties
Schakel het verzamelen van ongebruikte invoersecties in. Het wordt genegeerd op doelen die dat wel doen
ondersteunt deze optie niet. Het standaardgedrag (van het niet uitvoeren van deze rommel
collectie) kan worden hersteld door op te geven: --geen-gc-secties op de opdrachtregel. Opmerking
dat garbagecollection voor COFF- en PE-formaatdoelen wordt ondersteund, maar de
implementatie wordt momenteel als experimenteel beschouwd.

--gc-secties bepaalt welke invoersecties worden gebruikt door symbolen te onderzoeken en
verhuizingen. De sectie met het invoersymbool en alle secties met
symbolen die niet zijn gedefinieerd op de opdrachtregel worden bewaard, evenals secties met
symbolen waarnaar wordt verwezen door dynamische objecten. Merk op dat bij het bouwen van gedeelde bibliotheken de
linker moet aannemen dat er naar elk zichtbaar symbool wordt verwezen. Zodra deze eerste set van
secties is bepaald, markeert de linker recursief elke sectie als gebruikt
naar hun verhuizingen verwezen. Zien --invoer en --onbepaald.

Deze optie kan worden ingesteld bij het doen van een gedeeltelijke koppeling (ingeschakeld met optie -r). In deze
in het geval dat de hoofdmap van de bewaarde symbolen expliciet moet worden gespecificeerd door een --invoer or
--onbepaald optie of door een "ENTRY"-opdracht in het linkerscript.

--print-gc-secties
--geen-print-gc-secties
Maak een lijst van alle secties die zijn verwijderd door garbagecollection. De aanbieding is afgedrukt op stderr.
Deze optie is alleen effectief als garbage collection is ingeschakeld via de
--gc-secties) optie. Het standaardgedrag (van het niet vermelden van de secties die zijn)
verwijderd) kan worden hersteld door op te geven --geen-print-gc-secties op de opdrachtregel.

--afdruk-uitvoer-formaat
Druk de naam af van het standaard uitvoerformaat (misschien beïnvloed door andere opdrachtregel)
opties). Dit is de tekenreeks die zou verschijnen in een "OUTPUT_FORMAT" linker-script
opdracht.

--print-geheugen-gebruik
Gebruikte grootte, totale grootte en gebruikte grootte afdrukken van geheugengebieden die zijn gemaakt met de GEHEUGEN
opdracht. Dit is handig op ingesloten doelen om snel een overzicht te hebben van de hoeveelheid gratis
geheugen. Het formaat van de uitvoer heeft één kop en één regel per regio. Het is
zowel leesbaar voor mensen als gemakkelijk te parseren door tools. Hier is een voorbeeld van een uitvoer:

Geheugenregio Gebruikt Grootte Regio Grootte %leeftijd Gebruikt
ROM: 256 KB 1 MB 25.00%
RAM: 32 B 2 GB 0.00%

--help
Druk een samenvatting van de opdrachtregelopties af op de standaarduitvoer en sluit af.

--doel-hulp
Print een overzicht van alle doelspecifieke opties op de standaarduitvoer en sluit af.

-Kaart=mapbestand
Een linkmap naar het bestand afdrukken mapbestand. Zie de beschrijving van de -M optie, hierboven.

--geen-houd-geheugen
ld optimaliseert normaal gesproken voor snelheid boven geheugengebruik door de symbooltabellen van
invoerbestanden in het geheugen. Deze optie vertelt ld om in plaats daarvan te optimaliseren voor geheugengebruik, door
herlezen van de symbooltabellen indien nodig. Dit kan nodig zijn als: ld raakt op
geheugenruimte terwijl u een groot uitvoerbaar bestand koppelt.

--geen-undefined
-z defs
Rapporteer onopgeloste symboolreferenties uit reguliere objectbestanden. Dit gebeurt zelfs als
de linker creëert een niet-symbolische gedeelde bibliotheek. De schakelaar
--[no-]allow-shlib-ungedefinieerd regelt het gedrag voor het melden van onopgeloste
referenties gevonden in gedeelde bibliotheken waarnaar wordt gelinkt.

--sta-meervoudige-definitie toe
-z Muldefs
Normaal gesproken, wanneer een symbool meerdere keren wordt gedefinieerd, meldt de linker een fatale
fout. Deze opties laten meerdere definities toe en de eerste definitie wordt gebruikt.

--allow-shlib-ungedefinieerd
--no-allow-shlib-ungedefinieerd
Staat ongedefinieerde symbolen in gedeelde bibliotheken wel of niet toe. Deze schakelaar is vergelijkbaar met:
--geen-undefined behalve dat het het gedrag bepaalt wanneer de ongedefinieerde symbolen zijn
in een gedeelde bibliotheek in plaats van een gewoon objectbestand. Het heeft geen invloed op hoe
ongedefinieerde symbolen in reguliere objectbestanden worden behandeld.

Het standaardgedrag is om fouten te rapporteren voor niet-gedefinieerde symbolen waarnaar wordt verwezen in
gedeelde bibliotheken als de linker wordt gebruikt om een ​​uitvoerbaar bestand te maken, maar om toe te staan:
als de linker wordt gebruikt om een ​​gedeelde bibliotheek te maken.

De redenen voor het toestaan ​​van ongedefinieerde symboolverwijzingen in gedeelde bibliotheken gespecificeerd op
link tijd zijn dat:

· Een gedeelde bibliotheek die op het moment van de koppeling is opgegeven, is mogelijk niet dezelfde als de bibliotheek die is
beschikbaar tijdens het laden, dus het symbool kan tijdens het laden daadwerkelijk worden opgelost.

· Er zijn enkele besturingssystemen, bijv. BeOS en HPPA, waar ongedefinieerde symbolen in
gedeelde bibliotheken zijn normaal.

De BeOS-kernel patcht bijvoorbeeld gedeelde bibliotheken tijdens het laden om te selecteren
welke functie het meest geschikt is voor de huidige architectuur. Dit is
gebruikt, bijvoorbeeld om dynamisch een geschikte memset-functie te selecteren.

--geen-undefined-versie
Normaal gesproken, wanneer een symbool een ongedefinieerde versie heeft, zal de linker het negeren. Dit
optie staat symbolen met ongedefinieerde versie niet toe en er zal een fatale fout worden gegeven
gebruiken.

--standaard-symver
Maak en gebruik een standaard symboolversie (de soname) voor geëxporteerde symbolen zonder versiebeheer.

--standaard-geïmporteerde-symver
Maak en gebruik een standaard symboolversie (de soname) voor geïmporteerde symbolen zonder versiebeheer.

--geen-waarschuwing-mismatch
Normaal ld geeft een foutmelding als u invoerbestanden probeert te koppelen die:
komen om de een of andere reden niet overeen, misschien omdat ze zijn samengesteld voor verschillende
verwerkers of voor verschillende doeleinden. Deze optie vertelt ld dat het zou moeten
dergelijke mogelijke fouten stilzwijgend toestaan. Deze optie mag alleen met zorg worden gebruikt, in
gevallen waarin u een speciale actie hebt ondernomen die ervoor zorgt dat de linkerfouten zijn
ongepast.

--no-warn-search-mismatch
Normaal ld zal een waarschuwing geven als het een incompatibele bibliotheek vindt tijdens een bibliotheek
zoeken. Deze optie dempt de waarschuwing.

--geen-geheel-archief
Schakel het effect van de . uit --geheel-archief optie voor volgende archiefbestanden.

--noinhibit-exec
Bewaar het uitvoerbare uitvoerbestand wanneer het nog bruikbaar is. Normaal gesproken is de linker
zal geen uitvoerbestand produceren als het fouten tegenkomt tijdens het koppelingsproces; het
wordt afgesloten zonder een uitvoerbestand te schrijven wanneer het een fout geeft.

-nostlib
Zoek alleen in bibliotheekmappen die expliciet zijn opgegeven op de opdrachtregel. Bibliotheek
mappen gespecificeerd in linkerscripts (inclusief linkerscripts gespecificeerd op de
opdrachtregel) worden genegeerd.

--oformat=output-formaat
ld kan worden geconfigureerd om meer dan één soort objectbestand te ondersteunen. Als jouw ld is
op deze manier geconfigureerd, kunt u de --oformat optie om het binaire formaat op te geven voor
het uitvoerobjectbestand. Zelfs wanneer ld is geconfigureerd om alternatieve objecten te ondersteunen
formaten, hoeft u dit meestal niet op te geven, aangezien ld moet worden geconfigureerd om te produceren:
als standaard uitvoerformaat het meest gebruikelijke formaat op elke machine. output-formaat is een
tekstreeks, de naam van een bepaald formaat dat wordt ondersteund door de BFD-bibliotheken. (Jij kan
maak een lijst van de beschikbare binaire formaten met object -i.) De scriptopdracht
"OUTPUT_FORMAT" kan ook het uitvoerformaat specificeren, maar deze optie heft dit op.

-taart
--pic-uitvoerbaar
Maak een positie-onafhankelijk uitvoerbaar bestand. Dit wordt momenteel alleen ondersteund op ELF
platformen. Positie-onafhankelijke uitvoerbare bestanden zijn vergelijkbaar met gedeelde bibliotheken in die zin:
ze worden verplaatst door de dynamische linker naar het virtuele adres waarvoor het besturingssysteem kiest
hen (die kunnen variëren tussen aanroepen). Net als normale dynamisch gekoppelde uitvoerbare bestanden
ze kunnen worden uitgevoerd en symbolen die in het uitvoerbare bestand zijn gedefinieerd, kunnen niet worden overschreven door
gedeelde bibliotheken.

-qmagie
Deze optie wordt genegeerd voor Linux-compatibiliteit.

-Qy Deze optie wordt genegeerd voor SVR4-compatibiliteit.

--ontspannen
--niet-relax
Een optie met machineafhankelijke effecten. Deze optie wordt alleen ondersteund op een paar
targets.

Op sommige platforms is de --ontspannen optie voert doelspecifieke, globale optimalisaties uit
die mogelijk worden wanneer de linker de adressering in het programma oplost, zoals:
ontspannende adresmodi, nieuwe instructies samenstellen, kortere versie van . selecteren
huidige instructies en het combineren van constante waarden.

Op sommige platforms kunnen deze globale optimalisaties van de linktijd symbolisch debuggen van
het resulterende uitvoerbare onmogelijk. Dit is bekend het geval te zijn voor de Matsushita
MN10200- en MN10300-familie van processors.

Op platforms waar dit niet wordt ondersteund, --ontspannen wordt geaccepteerd, maar genegeerd.

Op platforms waar --ontspannen wordt geaccepteerd de optie --niet-relax kan worden gebruikt om uit te schakelen
De toekomst.

--retain-symbolen-bestand=bestandsnaam
Behouden Slechts de symbolen vermeld in het bestand bestandsnaam, waarbij alle anderen worden weggegooid. bestandsnaam
is gewoon een plat bestand, met één symboolnaam per regel. Deze optie is speciaal
handig in omgevingen (zoals VxWorks) waar een grote globale symbooltabel is
geleidelijk geaccumuleerd, om runtime-geheugen te sparen.

--retain-symbols-bestand doet niet verwijder ongedefinieerde symbolen of symbolen die nodig zijn voor
verhuizingen.

U mag alleen specificeren: --retain-symbols-bestand eenmaal in de opdrachtregel. Het overschrijft -s
en -S.

-rpad=dir
Voeg een map toe aan het zoekpad van de runtimebibliotheek. Dit wordt gebruikt bij het koppelen van een ELF
uitvoerbaar met gedeelde objecten. Alle -rpad argumenten worden aaneengeschakeld en doorgegeven aan
de runtime linker, die ze gebruikt om tijdens runtime gedeelde objecten te lokaliseren. De -rpad
optie wordt ook gebruikt bij het lokaliseren van gedeelde objecten die nodig zijn voor gedeelde objecten
expliciet opgenomen in de link; zie de beschrijving van de -rpath-link optie. Indien
-rpad wordt niet gebruikt bij het koppelen van een ELF-uitvoerbaar bestand, de inhoud van de omgeving
variabele "LD_RUN_PATH" wordt gebruikt als deze is gedefinieerd.

De -rpad optie kan ook worden gebruikt op SunOS. Standaard zal op SunOS de linker
een runtime-zoekpad vormen uit alle -L opties die het krijgt. Als een -rpad optie
wordt gebruikt, wordt het runtime-zoekpad uitsluitend gevormd met de -rpad opties
negeren van de -L opties. Dit kan handig zijn bij het gebruik van gcc, wat veel toevoegt -L
opties die mogelijk aanwezig zijn op NFS-gemounte bestandssystemen.

Voor compatibiliteit met andere ELF-linkers, als de -R optie wordt gevolgd door een map
naam, in plaats van een bestandsnaam, wordt het behandeld als de -rpad optie.

-rpath-link=dir
Bij gebruik van ELF of SunOS kan voor de ene gedeelde bibliotheek een andere nodig zijn. Dit gebeurt wanneer een
"ld -shared" link bevat een gedeelde bibliotheek als een van de invoerbestanden.

Wanneer de linker een dergelijke afhankelijkheid tegenkomt bij het doen van een niet-gedeelde, niet-verplaatsbare
link, zal het automatisch proberen de vereiste gedeelde bibliotheek te vinden en deze toe te voegen
in de link, als deze niet expliciet is opgenomen. In een dergelijk geval is de -rpath-link optie
specificeert de eerste set mappen die moet worden doorzocht. De -rpath-link optie kan specificeren
een reeks directorynamen, hetzij door een lijst met namen op te geven, gescheiden door
dubbele punten, of door meerdere keren te verschijnen.

Deze optie moet met de nodige voorzichtigheid worden gebruikt, omdat het het zoekpad negeert dat mogelijk heeft
moeilijk gecompileerd in een gedeelde bibliotheek. In zo'n geval is het mogelijk om
onbedoeld een ander zoekpad dan de runtime-linker zou doen.

De linker gebruikt de volgende zoekpaden om de vereiste gedeelde bibliotheken te vinden:

1. Alle mappen gespecificeerd door -rpath-link opties.

2. Alle mappen gespecificeerd door -rpad opties. Het verschil tussen -rpad en
-rpath-link is dat mappen gespecificeerd door -rpad opties zijn opgenomen in de
uitvoerbaar zijn en tijdens runtime worden gebruikt, terwijl de -rpath-link optie is alleen effectief
op linktijd. Zoeken -rpad op deze manier wordt alleen ondersteund door native linkers en
cross linkers die zijn geconfigureerd met de --met-sysroot optie.

3. Op een ELF-systeem, voor native linkers, als de -rpad en -rpath-link opties waren:
niet gebruikt, zoek de inhoud van de omgevingsvariabele "LD_RUN_PATH".

4. Op SunOS, als de -rpad optie is niet gebruikt, zoek in de opgegeven mappen
gebruik -L opties.

5. Zoek voor een native linker de inhoud van de omgevingsvariabele
"LD_LIBRARY_PATH".

6. Voor een native ELF-linker, de mappen in "DT_RUNPATH" of "DT_RPATH" van een gedeelde
bibliotheek worden doorzocht naar gedeelde bibliotheken die het nodig heeft. De "DT_RPATH" items zijn
genegeerd als "DT_RUNPATH"-items bestaan.

7. De standaardmappen, normaal gesproken / lib en / Usr / lib.

8. Voor een native linker op een ELF-systeem, als het bestand /etc/ld.so.conf bestaat, de lijst
van de mappen die in dat bestand zijn gevonden.

Als de vereiste gedeelde bibliotheek niet wordt gevonden, geeft de linker een waarschuwing en
ga verder met de link.

-gedeeld
-Bdeelbaar
Maak een gedeelde bibliotheek. Dit wordt momenteel alleen ondersteund op ELF, XCOFF en SunOS
platformen. Op SunOS zal de linker automatisch een gedeelde bibliotheek maken als de -e
optie wordt niet gebruikt en er zijn ongedefinieerde symbolen in de link.

--sort-gemeenschappelijk
--sort-common=oplopend
--sort-common=aflopend
Deze optie vertelt ld om de gemeenschappelijke symbolen te sorteren op uitlijning in oplopende of
aflopende volgorde wanneer het ze in de juiste uitvoersecties plaatst. Het symbool
beschouwde uitlijningen zijn zestien-byte of groter, acht-byte, vier-byte, twee-byte en
een byte. Dit is bedoeld om hiaten tussen symbolen als gevolg van uitlijningsbeperkingen te voorkomen. Als Nee
sorteervolgorde is opgegeven, vervolgens wordt een aflopende volgorde aangenomen.

--sort-section=naam
Met deze optie wordt 'SORT_BY_NAME' toegepast op alle sectiepatronen met jokertekens in de linker
scripts.

--sort-sectie=uitlijning
Deze optie past "SORT_BY_ALIGNMENT" toe op alle sectiepatronen met jokertekens in de
linker-script.

--gesplitst-per-bestand[=grootte]
Soortgelijke --gesplitst-door-verplaatsing maar maakt een nieuwe uitvoersectie voor elk invoerbestand wanneer
grootte is bereikt. grootte standaard ingesteld op een grootte van 1 indien niet opgegeven.

--gesplitst-door-reloc[=tellen]
Probeert extra secties in het uitvoerbestand te maken, zodat er geen enkele uitvoersectie in
het bestand bevat meer dan tellen verhuizingen. Dit is handig bij het genereren van enorme
verplaatsbare bestanden om te downloaden naar bepaalde realtime kernels met het COFF-object
bestandsformaat; aangezien COFF niet meer dan 65535 verhuizingen in een enkele kan vertegenwoordigen
sectie. Merk op dat dit niet zal werken met objectbestandsformaten die niet
ondersteuning van willekeurige secties. De linker zal geen afzonderlijke invoersecties opsplitsen
voor herverdeling, dus als een enkele invoersectie meer dan bevat tellen verhuizingen
één uitvoersectie zal zoveel verhuizingen bevatten. tellen standaard ingesteld op een waarde van
32768.

--statistieken
Bereken en toon statistieken over de werking van de linker, zoals uitvoering
tijd en geheugengebruik.

--sysroot=directory
Te gebruiken directory als de locatie van de sysroot, waarbij de standaardconfiguratietijd wordt overschreven.
Deze optie wordt alleen ondersteund door linkers die zijn geconfigureerd met --met-sysroot.

--traditioneel-formaat
Voor sommige doelen is de output van ld is in sommige opzichten anders dan de output van sommige
bestaande koppelaar. Deze schakelaar vraagt: ld om in plaats daarvan het traditionele formaat te gebruiken.

Op SunOS bijvoorbeeld, ld combineert dubbele vermeldingen in de symboolreekstabel. Dit
kan de grootte van een uitvoerbestand met volledige foutopsporingsinformatie met meer dan 30 . verkleinen
procent. Helaas kan het SunOS "dbx"-programma het resulterende programma niet lezen
("gdb" heeft geen problemen). De --traditioneel-formaat schakelaar vertelt ld niet combineren
dubbele vermeldingen.

--sectie-start=sectie naam=org
Zoek een sectie in het uitvoerbestand op het absolute adres gegeven door org. Je mag gebruiken
deze optie zo vaak als nodig is om meerdere secties in de opdracht te vinden
lijn. org moet een enkel hexadecimaal geheel getal zijn; voor compatibiliteit met andere linkers,
je mag de leidende weglaten 0x meestal geassocieerd met hexadecimale waarden. Opmerking: er
mag geen witruimte tussen zijn sectie naam, het isgelijkteken ("="), en org.

-Tbs=org
-Tgegevens=org
-Ttekst=org
Hetzelfde als --sectie-start, met ".bss", ".data" of ".text" als de sectie naam.

-Ttekst-segment=org
Bij het maken van een ELF-uitvoerbaar bestand, wordt het adres van de eerste byte van de tekst ingesteld
segment.

-Trodata-segment=org
Bij het maken van een ELF uitvoerbaar of gedeeld object voor een doel waar de alleen-lezen gegevens
is in zijn eigen segment gescheiden van de uitvoerbare tekst, het zal het adres van . instellen
de eerste byte van het alleen-lezen datasegment.

-Tldata-segment=org
Bij het maken van een ELF uitvoerbaar of gedeeld object voor x86-64 medium geheugenmodel, is het:
zal het adres van de eerste byte van het ldata-segment instellen.

--onopgeloste symbolen=methode
Bepaal hoe om te gaan met onopgeloste symbolen. Er zijn vier mogelijke waarden voor
methode:

negeer alles
Rapporteer geen onopgeloste symbolen.

alles melden
Rapporteer alle onopgeloste symbolen. Dit is de standaardinstelling.

negeer-in-object-bestanden
Rapporteer onopgeloste symbolen in gedeelde bibliotheken, maar negeer ze
als ze uit gewone objectbestanden komen.

negeren-in-gedeelde-libs
Rapporteer onopgeloste symbolen die uit gewone objectbestanden komen, maar negeer ze als
ze komen uit gedeelde bibliotheken. Dit kan handig zijn bij het maken van een dynamiek
binair en het is bekend dat alle gedeelde bibliotheken waarnaar het zou moeten verwijzen
zijn opgenomen op de opdrachtregel van de linker.

Het gedrag voor gedeelde bibliotheken op zichzelf kan ook worden gecontroleerd door de
--[no-]allow-shlib-ungedefinieerd optie.

Normaal gesproken genereert de linker een foutmelding voor elk gerapporteerd onopgelost symbool
maar de optie --waarschuwing-onopgeloste-symbolen kan dit veranderen in een waarschuwing.

--dll-uitgebreid
--uitgebreid[=NUMMER]
Geef het versienummer weer voor ld en vermeld de ondersteunde linker-emulaties. Weergave
welke invoerbestanden wel en niet kunnen worden geopend. Geef het linkerscript weer dat wordt gebruikt door
de koppelaar. Als de optionele NUMMER argument > 1, de status van het plug-insymbool zal ook zijn
weergegeven.

--versie-script=versie-scriptbestand
Geef de naam van een versiescript op voor de linker. Dit wordt meestal gebruikt wanneer:
gedeelde bibliotheken maken om aanvullende informatie over de versie op te geven
hiërarchie voor de bibliotheek die wordt gemaakt. Deze optie wordt alleen volledig ondersteund op ELF
platforms die gedeelde bibliotheken ondersteunen; zien VERSIE. Het wordt gedeeltelijk ondersteund op
PE-platforms, die versiescripts kunnen gebruiken om de zichtbaarheid van symbolen in auto-export te filteren
modus: alle symbolen gemarkeerd lokaal in het versiescript wordt niet geëxporteerd.

--waarschuwen-vaak
Waarschuw wanneer een algemeen symbool wordt gecombineerd met een ander algemeen symbool of met een symbool
definitie. Unix-linkers laten deze ietwat slordige praktijk toe, maar linkers op sommige
andere besturingssystemen niet. Met deze optie kunt u potentiële problemen vinden
van het combineren van globale symbolen. Helaas gebruiken sommige C-bibliotheken deze praktijk, dus
u kunt enkele waarschuwingen krijgen over symbolen in de bibliotheken en in uw programma's.

Er zijn drie soorten globale symbolen, hier geïllustreerd door C-voorbeelden:

int i = 1;
Een definitie die in het gedeelte met geïnitialiseerde gegevens van het uitvoerbestand komt.

extern int i;
Een ongedefinieerde referentie, die geen ruimte toewijst. Er moet ofwel een
definitie of een algemeen symbool voor de variabele ergens.

int i;
Een algemeen symbool. Als er slechts (een of meer) gemeenschappelijke symbolen voor een variabele zijn,
het komt in het niet-geïnitialiseerde gegevensgebied van het uitvoerbestand. De linker fuseert
meerdere gemeenschappelijke symbolen voor dezelfde variabele in een enkel symbool. Als zij zijn
van verschillende maten, kiest het de grootste maat. De linker wordt een gemeenschappelijk symbool
in een declaratie, als er een definitie is van dezelfde variabele.

De --waarschuwen-vaak optie kan vijf soorten waarschuwingen produceren. Elke waarschuwing bestaat uit:
een paar regels: de eerste beschrijft het symbool dat zojuist is tegengekomen, en de tweede
beschrijft het vorige symbool met dezelfde naam. Een of beide van de twee
symbolen zullen een algemeen symbool zijn.

1. Van een algemeen symbool een referentie maken, omdat er al een definitie is
voor het symbool.

( ): waarschuwing: gemeenschappelijk van ` '
per definitie overschreven
( ): waarschuwing: hier gedefinieerd

2. Van een algemeen symbool een referentie maken, omdat een latere definitie voor de
symbool wordt aangetroffen. Dit is hetzelfde als het vorige geval, behalve dat de
symbolen komen in een andere volgorde voor.

( ): waarschuwing: definitie van ` '
overheersende gemeenschappelijke
( ): waarschuwing: gebruikelijk is hier

3. Samenvoegen van een gemeenschappelijk symbool met een eerder gemeenschappelijk symbool van dezelfde grootte.

( ): waarschuwing: meerdere gemeenschappelijke
van ` '
( ): waarschuwing: vorige common is hier

4. Samenvoegen van een gemeenschappelijk symbool met een eerder groter gemeenschappelijk symbool.

( ): waarschuwing: gemeenschappelijk van ` '
overschreven door grotere common
( ): waarschuwing: grotere common is hier

5. Samenvoegen van een gemeenschappelijk symbool met een eerder kleiner gemeenschappelijk symbool. Dit is hetzelfde
zoals het vorige geval, behalve dat de symbolen in een ander
order.

( ): waarschuwing: gemeenschappelijk van ` '
overschrijven kleinere gemeenschappelijke
( ): waarschuwing: kleinere gemeenschappelijke is hier

--warn-bouwers
Waarschuw als er globale constructors worden gebruikt. Dit is alleen nuttig voor een paar objectbestanden
formaten. Voor formaten zoals COFF of ELF kan de linker het gebruik van global . niet detecteren
constructeurs.

--waarschuwen-meerdere-gp
Waarschuwen als meerdere globale aanwijzerwaarden vereist zijn in het uitvoerbestand. Dit is alleen
zinvol voor bepaalde processors, zoals de Alpha. Specifiek, sommige processors
plaats grote constanten in een speciale sectie. Een speciaal register (de globale
pointer) wijst naar het midden van deze sectie, zodat constanten kunnen worden geladen
efficiënt via een base-register relatieve adresseringsmodus. Sinds de offset in basis-
register relatieve modus is vast en relatief klein (bijv. 16 bits), dit beperkt de
maximale grootte van de constante pool. In grote programma's is het dus vaak nodig om:
gebruik meerdere globale aanwijzerwaarden om alle mogelijke aan te kunnen pakken
constanten. Deze optie zorgt ervoor dat er een waarschuwing wordt gegeven wanneer dit geval zich voordoet.

--waarschuw-eenmaal
Waarschuw slechts één keer voor elk ongedefinieerd symbool, in plaats van één keer per module die verwijst naar:
het.

--waarschuwing-sectie-uitlijnen
Waarschuwen als het adres van een uitvoersectie is gewijzigd vanwege uitlijning. Typisch,
de uitlijning wordt ingesteld door een invoersectie. Het adres wordt alleen gewijzigd als het
niet expliciet gespecificeerd; dat wil zeggen, als de opdracht "SECTIONS" geen start specificeert
adres voor de afdeling.

--warn-shared-textrel
Waarschuwen als de linker een DT_TEXTREL toevoegt aan een gedeeld object.

--waarschuwing-alternatief-em
Waarschuwen als een object een alternatieve ELF-machinecode heeft.

--waarschuwing-onopgeloste-symbolen
Als de linker een onopgelost symbool gaat rapporteren (zie de optie
--onopgeloste-symbolen) zal het normaal gesproken een fout genereren. Deze optie maakt het
in plaats daarvan een waarschuwing genereren.

--error-onopgeloste-symbolen
Dit herstelt het standaardgedrag van de linker om fouten te genereren wanneer deze rapporteert
onopgeloste symbolen.

--geheel-archief
Voor elk archief vermeld op de opdrachtregel na de --geheel-archief keuze,
neem elk objectbestand in het archief op in de link, in plaats van te zoeken in de
archief voor de vereiste objectbestanden. Dit wordt normaal gesproken gebruikt om een ​​archiefbestand om te zetten
in een gedeelde bibliotheek, waardoor elk object moet worden opgenomen in de resulterende gedeelde
bibliotheek. Deze optie kan meer dan eens worden gebruikt.

Twee opmerkingen bij het gebruik van deze optie van gcc: Ten eerste weet gcc niets van deze optie,
dus je moet gebruiken -Wl,-geheel-archief. Ten tweede, vergeet niet te gebruiken
-Wl,-geen-geheel-archief na uw lijst met archieven, omdat gcc zijn eigen lijst zal toevoegen
van archieven naar uw link en u wilt misschien niet dat deze vlag daar ook van invloed op is.

--wikkel=symbool
Gebruik een wrapper-functie voor: symbool. Elke ongedefinieerde verwijzing naar symbool zal worden opgelost
inpakken_symbool". Elke ongedefinieerde verwijzing naar "__real_symbool" zal worden opgelost om
symbool.

Dit kan worden gebruikt om een ​​wrapper voor een systeemfunctie te verschaffen. De wrapper-functie
zou "__wrap_" moeten hetensymbool". Als het de systeemfunctie wil aanroepen, moet het:
bel "__real_symbool".

Hier is een triviaal voorbeeld:

leegte *
__wrap_malloc (maat_t c)
{
printf ("malloc aangeroepen met %zu\n", c);
retourneer __real_malloc (c);
}

Als u andere code aan dit bestand koppelt met --wikkelen malloc, dan alle oproepen naar "malloc"
zal in plaats daarvan de functie "__wrap_malloc" aanroepen. De oproep naar "__real_malloc" in
"__wrap_malloc" roept de echte "malloc"-functie aan.

Mogelijk wilt u ook een "__real_malloc"-functie geven, zodat links zonder de
--wikkelen optie zal slagen. Als u dit doet, moet u de definitie van
"__real_malloc" in hetzelfde bestand als "__wrap_malloc"; als je dat doet, kan de assembler
los de aanroep op voordat de linker de kans heeft om deze naar "malloc" te verpakken.

--eh-frame-hdr
Verzoek om de sectie ".eh_frame_hdr" en de koptekst van het ELF "PT_GNU_EH_FRAME"-segment te maken.

--geen-ld-gegenereerde-ontwikkel-info
Verzoek om creatie van ".eh_frame" afwikkelinformatie voor door linker gegenereerde codesecties zoals
PLT. Deze optie is standaard ingeschakeld als door de linker gegenereerde afwikkelinformatie wordt ondersteund.

--enable-nieuwe-dtags
--disable-nieuwe-dtags
Deze linker kan de nieuwe dynamische tags in ELF maken. Maar de oudere ELF-systemen misschien niet
ze begrijpen. Als u opgeeft: --enable-nieuwe-dtags, de nieuwe dynamische tags zijn
indien nodig gemaakt en oudere dynamische tags worden weggelaten. Als u opgeeft:
--disable-nieuwe-dtags, worden er geen nieuwe dynamische tags gemaakt. Standaard is de nieuwe dynamiek
tags worden niet gemaakt. Merk op dat deze opties alleen beschikbaar zijn voor ELF-systemen.

--hash-grootte=aantal
Stel de standaardgrootte van de hashtabellen van de linker in op een priemgetal in de buurt van aantal.
Door deze waarde te verhogen, kan de tijd die de linker nodig heeft om zijn taak uit te voeren, worden verkort
taken, ten koste van het verhogen van de geheugenvereisten van de linker. evenzo
het verlagen van deze waarde kan de geheugenvereisten verminderen ten koste van de snelheid.

--hash-stijl=stijl
Stel het type hashtabel(len) van de linker in. stijl kan ofwel "sysv" zijn voor klassieke ELF
".hash" sectie, "gnu" voor nieuwe stijl GNU ".gnu.hash" sectie of "beide" voor zowel de
klassieke ELF ".hash" en nieuwe stijl GNU ".gnu.hash" hashtabellen. De standaard is "sysv".

--compress-debug-sections=geen
--compress-debug-secties=zlib
--compress-debug-secties=zlib-gnu
--compress-debug-sections=zlib-gabi
Op ELF-platforms bepalen deze opties hoe DWARF-foutopsporingssecties worden gecomprimeerd met:
zlib. --compress-debug-sections=geen comprimeert DWARF-foutopsporingssecties niet.
--compress-debug-secties=zlib-gnu comprimeert DWARF debug-secties en hernoemt debug
sectienamen om mee te beginnen .zdebug in plaats van .debuggen. --compress-debug-secties=zlib
en --compress-debug-sections=zlib-gabi comprimeer DWARF-foutopsporingssecties met
SHF_COMPRESSED van de ELF ABI. Het standaardgedrag varieert afhankelijk van de
betrokken doel en de configuratieopties die zijn gebruikt om de toolchain te bouwen. De standaard
kan worden bepaald door de uitvoer van de linker's te onderzoeken --help optie.

--verminder-geheugen-overhead
Deze optie vermindert de geheugenvereisten tijdens ld runtime, ten koste van de koppeling
snelheid. Dit werd geïntroduceerd om het oude O(n^2)-algoritme voor het linkmapbestand te selecteren
generatie, in plaats van het nieuwe O(n)-algoritme dat ongeveer 40% meer geheugen gebruikt voor
symbool opslag.

Een ander effect van de omschakeling is om de standaard hash-tabelgrootte in te stellen op 1021, wat:
bespaart opnieuw geheugen ten koste van het verlengen van de looptijd van de linker. Dit is niet gedaan
echter als de --hash-grootte schakelaar is gebruikt.

De --verminder-geheugen-overhead schakelaar kan ook worden gebruikt om andere afwegingen in te schakelen
toekomstige versies van de linker.

--build-id
--build-id=stijl
Vraag om het maken van een ".note.gnu.build-id" ELF-notitiesectie of een ".buildid" COFF
sectie. De inhoud van de notitie zijn unieke stukjes die dit gekoppelde bestand identificeren.
stijl kan "uuid" zijn om 128 willekeurige bits te gebruiken, "sha1" om een ​​160-bit SHA1-hash op de
normatieve delen van de uitvoerinhoud, "md5" om een ​​128-bits MD5-hash op de . te gebruiken
normatieve delen van de uitvoerinhoud, of "0xzeskant" om een ​​gekozen bitstring te gebruiken
gespecificeerd als een even aantal hexadecimale cijfers ("-" en ":" tekens tussen
cijferparen worden genegeerd). Indien stijl wordt weggelaten, wordt "sha1" gebruikt.

De stijlen "md5" en "sha1" produceren een id die altijd hetzelfde is in een
identiek uitvoerbestand, maar zal uniek zijn onder alle niet-identieke uitvoerbestanden. Het is
niet bedoeld om te worden vergeleken als een controlesom voor de inhoud van het bestand. Een gekoppeld bestand kan
later worden gewijzigd door andere tools, maar de build-ID-bitstring die het origineel identificeert
gekoppeld bestand verandert niet.

"Geen" doorgeven voor stijl schakelt de instelling van alle "--build-id" opties eerder uit
de opdrachtregel.

De i386 PE-linker ondersteunt de -gedeeld optie, waardoor de uitvoer a
dynamisch gekoppelde bibliotheek (DLL) in plaats van een normaal uitvoerbaar bestand. Je zou de naam moeten noemen
output "*.dll" wanneer u deze optie gebruikt. Bovendien ondersteunt de linker volledig de
standaard "*.def"-bestanden, die als een object op de linker-opdrachtregel kunnen worden opgegeven
bestand (in feite moet het voorafgaan aan archieven waaruit het symbolen exporteert, om ervoor te zorgen dat ze
gekoppeld, net als een normaal objectbestand).

Naast de opties die alle doelen gemeen hebben, ondersteunt de i386 PE-linker extra
opdrachtregelopties die specifiek zijn voor het i386 PE-doel. Opties die waarden aannemen
kunnen van hun waarden worden gescheiden door een spatie of een gelijkteken.

--add-stdcall-alias
Indien opgegeven, symbolen met een achtervoegsel stdcall (@nn) wordt geëxporteerd zoals het is en ook met de
achtervoegsel gestript. [Deze optie is specifiek voor de i386 PE-gerichte poort van de linker]

--base-bestand filet
Te gebruiken filet als de naam van een bestand waarin de basisadressen van alle
verplaatsingen die nodig zijn voor het genereren van DLL's met dlltool. [Dit is een i386 PE-specifiek
keuze]

--dll
Maak een DLL in plaats van een normaal uitvoerbaar bestand. U kunt ook gebruik maken van -gedeeld of specificeer een
"LIBRARY" in een bepaald ".def"-bestand. [Deze optie is specifiek voor de beoogde i386 PE
poort van de linker]

--enable-namen van lange secties
--uitschakelen-lange-sectie-namen
De PE-varianten van het COFF-objectformaat voegen een extensie toe die het gebruik van:
sectienamen langer dan acht tekens, de normale limiet voor COFF. Standaard,
deze namen zijn alleen toegestaan ​​in objectbestanden, zoals volledig gekoppelde uitvoerbare afbeeldingen niet
draag de COFF-tekenreekstabel die nodig is om de langere namen te ondersteunen. Als een GNU-extensie,
het is mogelijk om hun gebruik in uitvoerbare afbeeldingen ook toe te staan, of om (waarschijnlijk)
zinloos!) verbied het in objectbestanden door deze twee opties te gebruiken. Uitvoerbaar
afbeeldingen die zijn gegenereerd met deze lange sectienamen zijn enigszins niet-standaard, en dragen als
ze doen een tekenreekstabel en kunnen verwarrende uitvoer genereren wanneer ze worden onderzocht met niet-GNU
PE-bewuste tools, zoals bestandsviewers en dumpers. GDB vertrouwt echter op het gebruik van
PE lange sectienamen om Dwarf-2 debug-informatiesecties in een uitvoerbaar bestand te vinden
image tijdens runtime, en dus als geen van beide opties is opgegeven op de opdrachtregel, ld wil
lange sectienamen inschakelen, het standaard en technisch correct gedrag overschrijven,
wanneer het de aanwezigheid van foutopsporingsinformatie vindt tijdens het koppelen van een uitvoerbare afbeelding en
symbolen niet strippen. [Deze optie is geldig voor alle PE-gerichte poorten van de linker]

--enable-stdcall-fixup
--disable-stdcall-fixup
Als de link een symbool vindt dat het niet kan oplossen, zal het proberen om "fuzzy" te doen
linking" door te zoeken naar een ander gedefinieerd symbool dat alleen verschilt in het formaat van de
symboolnaam (cdecl vs stdcall) en zal dat symbool oplossen door naar de overeenkomst te linken.
Het ongedefinieerde symbool "_foo" kan bijvoorbeeld worden gekoppeld aan de functie "_foo@12", of
het ongedefinieerde symbool "_bar@16" is mogelijk gekoppeld aan de functie "_bar". Wanneer de
linker dit doet, drukt het een waarschuwing af, omdat het normaal gesproken niet had moeten linken,
maar soms hebben importbibliotheken die zijn gegenereerd met dll's van derden deze functie nodig
bruikbaar te zijn. Als u opgeeft: --enable-stdcall-fixup, deze functie is volledig ingeschakeld
en waarschuwingen worden niet afgedrukt. Als u opgeeft: --disable-stdcall-fixup, deze functie is
uitgeschakeld en dergelijke mismatches worden als fouten beschouwd. [Deze optie is specifiek voor
de i386 PE-gerichte poort van de linker]

--leidend-onderstrepingsteken
--geen-leidende-underscore
Voor de meeste doelen is het standaard symbool-voorvoegsel een onderstrepingsteken en wordt gedefinieerd in doelen
Omschrijving. Met deze optie is het mogelijk om het standaard onderstrepingsteken in/uit te schakelen
symbool-voorvoegsel.

--export-alle-symbolen
Indien opgegeven, worden alle globale symbolen in de objecten die zijn gebruikt om een ​​DLL te bouwen, geëxporteerd door:
het DLL-bestand. Merk op dat dit de standaard is als er anders geen geëxporteerd zou zijn
symbolen. Wanneer symbolen expliciet worden geëxporteerd via DEF-bestanden of impliciet worden geëxporteerd
via functieattributen is de standaardinstelling om niets anders te exporteren, tenzij deze optie
is gegeven. Merk op dat de symbolen "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12" en "impure_ptr" worden niet automatisch geëxporteerd. Ook,
symbolen die uit andere DLL's zijn geïmporteerd, worden niet opnieuw geëxporteerd, en symbolen die specificeren:
de interne lay-out van de DLL, zoals die beginnen met "_head_" of eindigen met
"_ik noem". Bovendien geen symbolen van "libgcc", "libstd++", "libmingw32", of
"crtX.o" wordt geëxporteerd. Symbolen waarvan de naam begint met "__rtti_" of "__builtin_"
wordt niet geëxporteerd om te helpen met C++ DLL's. Ten slotte is er een uitgebreide lijst van
cygwin-private symbolen die niet worden geëxporteerd (dit is uiteraard van toepassing op bij het bouwen)
DLL's voor cygwin-doelen). Deze uitsluitingen van cygwin zijn: "_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" en "omgeving". [Deze optie is specifiek voor de beoogde i386 PE
poort van de linker]

--exclusief-symbolen symbool,symbool, ...
Specificeert een lijst met symbolen die niet automatisch moeten worden geëxporteerd. Het symbool
namen kunnen worden gescheiden door komma's of dubbele punten. [Deze optie is specifiek voor de i386 PE
gerichte poort van de linker]

--exclusief-alle-symbolen
Geeft aan dat symbolen niet automatisch moeten worden geëxporteerd. [Deze optie is specifiek voor
de i386 PE-gerichte poort van de linker]

--bestands-uitlijning
Geef de bestandsuitlijning op. Secties in het bestand beginnen altijd bij bestandsoffsets
die een veelvoud zijn van dit aantal. Dit is standaard 512. [Deze optie is specifiek
naar de i386 PE-gerichte poort van de linker]

--hoop reserve
--hoop reserve,plegen
Specificeer het aantal bytes geheugen dat moet worden gereserveerd (en optioneel vastgelegd) dat moet worden gebruikt als
hoop voor dit programma. De standaard is 1 MB gereserveerd, 4K vastgelegd. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--image-basis waarde
Te gebruiken waarde als het basisadres van uw programma of dll. Dit is het laagste geheugen
locatie die zal worden gebruikt wanneer uw programma of dll wordt geladen. Om de noodzaak te verminderen om
verplaatsen en de prestaties van uw dll's verbeteren, elk moet een uniek basisadres hebben
en geen andere dll's overlappen. De standaardwaarde is 0x400000 voor uitvoerbare bestanden, en
0x10000000 voor dll's. [Deze optie is specifiek voor de i386 PE-gerichte poort van de
linker]

--doden-bij
Indien gegeven, de stdcall-achtervoegsels (@nn) worden van symbolen verwijderd voordat ze dat zijn
geëxporteerd. [Deze optie is specifiek voor de i386 PE-gerichte poort van de linker]

--groot adres bewust
Indien opgegeven, wordt de juiste bit in het veld "Kenmerken" van de COFF-header ingesteld
om aan te geven dat dit uitvoerbare bestand virtuele adressen groter dan 2 gigabyte ondersteunt.
Dit moet worden gebruikt in combinatie met de /3GB of /USERVA=waarde megabytes inschakelen
het gedeelte "[besturingssystemen]" van de BOOT.INI. Anders heeft dit bit geen effect.
[Deze optie is specifiek voor PE-gerichte poorten van de linker]

--uitschakelen-groot-adres-bewust
Keert het effect van een vorige . terug --groot adres bewust optie. Dit is handig als:
--groot adres bewust wordt altijd ingesteld door het compilerstuurprogramma (bijv. Cygwin gcc) en de
uitvoerbaar ondersteunt geen virtuele adressen groter dan 2 gigabyte. [Deze optie
is specifiek voor PE-gerichte poorten van de linker]

--grote-afbeelding-versie waarde
Stelt het hoofdnummer van de "afbeeldingsversie" in. Standaard ingesteld op 1. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--major-os-versie waarde
Stelt het hoofdnummer van de "os-versie" in. Standaard ingesteld op 4. [Deze optie is specifiek
naar de i386 PE-gerichte poort van de linker]

--grote-subsysteem-versie waarde
Stelt het hoofdnummer van de "subsysteemversie" in. Standaard ingesteld op 4. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--minor-image-versie waarde
Stelt het secundaire nummer van de "afbeeldingsversie" in. Standaard ingesteld op 0. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--minor-os-versie waarde
Stelt het secundaire nummer van de "os-versie" in. Standaard ingesteld op 0. [Deze optie is specifiek
naar de i386 PE-gerichte poort van de linker]

--minor-subsysteem-versie waarde
Stelt het secundaire nummer van de "subsysteemversie" in. Standaard ingesteld op 0. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--uitvoer-def filet
De linker zal het bestand maken filet die een DEF-bestand zal bevatten dat overeenkomt met
de DLL die de linker genereert. Dit DEF-bestand (dat "*.def" zou moeten heten) kan
kan worden gebruikt om een ​​importbibliotheek te maken met "dlltool" of kan worden gebruikt als verwijzing naar
automatisch of impliciet geëxporteerde symbolen. [Deze optie is specifiek voor de i386 PE
gerichte poort van de linker]

--uit-implib filet
De linker zal het bestand maken filet die een import-lib zal bevatten die overeenkomt met
de DLL die de linker genereert. Deze import-lib (die "*.dll.a" of . zou moeten heten
"*.a" kan worden gebruikt om clients te koppelen aan de gegenereerde DLL; dit gedrag maakt het
mogelijk om een ​​aparte stap voor het maken van een "dlltool"-importbibliotheek over te slaan. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--enable-auto-image-base
--enable-auto-image-base=waarde
Kies automatisch de afbeeldingsbasis voor DLL's, optioneel beginnend met basis waarde,
tenzij er een is opgegeven met het argument "--image-base". Door een hash te gebruiken die is gegenereerd
van de dll-naam om unieke afbeeldingsbases te creëren voor elke DLL, botsingen in het geheugen en
verplaatsingen die de uitvoering van het programma kunnen vertragen, worden vermeden. [Deze optie is specifiek
naar de i386 PE-gerichte poort van de linker]

--disable-auto-image-base
Genereer niet automatisch een unieke beeldbasis. Als er geen door de gebruiker opgegeven
image base ("--image-base") gebruik dan de platformstandaard. [Deze optie is specifiek
naar de i386 PE-gerichte poort van de linker]

--dll-zoekvoorvoegsel snaar
Wanneer u dynamisch linkt naar een dll zonder een importbibliotheek, zoekt u naar:
" .dll" in plaats van "lib .dll". Dit gedrag maakt het mogelijk
eenvoudig onderscheid tussen DLL's die zijn gebouwd voor de verschillende "subplatforms": native, cygwin,
uwin, pw, etc. Cygwin DLL's gebruiken bijvoorbeeld meestal "--dll-search-prefix=cyg".
[Deze optie is specifiek voor de i386 PE-gerichte poort van de linker]

--enable-auto-import
Voer geavanceerde koppelingen uit van "_symbol" naar "__imp__symbol" voor DATA-import uit DLL's,
en maak de nodige thunking-symbolen bij het bouwen van de importbibliotheken met
die DATA-export. Opmerking: het gebruik van de extensie 'auto-import' zorgt ervoor dat de tekst
gedeelte van het afbeeldingsbestand dat beschrijfbaar moet worden gemaakt. Dit is niet conform de PE-COFF
formaatspecificatie gepubliceerd door Microsoft.

Opmerking - het gebruik van de extensie 'auto-import' zal ook leiden tot alleen-lezen gegevens die
normaal gesproken in de .rdata-sectie worden geplaatst om in de .data-sectie te worden geplaatst
in plaats daarvan. Dit is om een ​​probleem met consts te omzeilen dat wordt beschreven
hier: http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

Het gebruik van 'auto-import' zal over het algemeen 'gewoon werken' -- maar soms zie je dit
bericht:

"variabele ' ' kan niet automatisch worden geïmporteerd. Lees de documentatie voor ld's
"--enable-auto-import" voor details."

Dit bericht treedt op wanneer een (sub)expressie toegang krijgt tot een adres dat uiteindelijk is opgegeven door
de som van twee constanten (Win32-importtabellen staan ​​er maar één toe). Gevallen waarin dit
kan optreden omvatten toegangen tot lidvelden van structvariabelen geïmporteerd uit een DLL,
evenals het gebruik van een constante index in een arrayvariabele geïmporteerd uit een DLL. Ieder
variabele met meerdere woorden (arrays, structs, long long, enz.) kan deze fout veroorzaken.
Ongeacht het exacte gegevenstype van de aanstootgevende geëxporteerde variabele, zal ld echter
detecteer het altijd, geef de waarschuwing en sluit af.

Er zijn verschillende manieren om dit probleem aan te pakken, ongeacht het gegevenstype van de
geëxporteerde variabele:

Een manier is om --enable-runtime-pseudo-reloc switch te gebruiken. Dit laat de taak van
referenties in uw clientcode aanpassen voor runtime-omgeving, dus deze methode werkt
alleen wanneer de runtime-omgeving deze functie ondersteunt.

Een tweede oplossing is om een ​​van de 'constanten' te dwingen een variabele te zijn -- dat wil zeggen,
onbekend en niet-optimaliseerbaar tijdens het compileren. Voor arrays zijn er twee mogelijkheden:
a) maak van de indexee (het adres van de array) een variabele, of b) maak de 'constante' index
een variabele. Dus:

extern type externe_array[];
extern_array[1] -->
{ vluchtig type *t=extern_array; t[1] }

or

extern type externe_array[];
extern_array[1] -->
{ vluchtig int t=1; externe_array[t] }

Voor structs (en de meeste andere datatypes met meerdere woorden) is de enige optie om de
struct zelf (of de long long, of de ...) variabele:

externe struct s externe_struct;
extern_struct.field -->
{ vluchtige struct s *t=&extern_struct; t->veld }

or

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

Een derde methode om met deze moeilijkheid om te gaan, is het verlaten van 'auto-import' voor de
beledigend symbool en markeer het met "__declspec(dllimport)". In de praktijk is dat echter
vereist het gebruik van compile-time #defines om aan te geven of u een DLL bouwt,
clientcode bouwen die naar de DLL zal linken, of alleen bouwen/linken naar een statische
bibliotheek. Bij het maken van de keuze tussen de verschillende methoden voor het oplossen van de 'directe'
adres met constante offset'-probleem, moet u rekening houden met typisch gebruik in de echte wereld:

origineel:

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

1 Oplossing:

--foo.h
externe int arr[];
--foo.c
#include "foo.h"
leegte main(int argc, char **argv){
/* Deze tijdelijke oplossing is voor win32 en cygwin; niet "optimaliseren" */
vluchtige int *parr = arr;
printf("%d\n",parr[1]);
}

2 Oplossing:

--foo.h
/* Opmerking: automatisch exporteren wordt verondersteld (geen __declspec(dllexport)) */
#if (defined(_WIN32) || gedefinieerd(__CYGWIN__)) && \
!(defined(FOO_BUILD_DLL) || gedefinieerd(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#anders
#define FOO_IMPORT
#stop als
extern FOO_IMPORT int arr[];
--foo.c
#include "foo.h"
leegte main(int argc, char **argv){
printf("%d\n",arr[1]);
}

Een vierde manier om dit probleem te voorkomen, is door uw bibliotheek opnieuw te coderen om een ​​functionele
interface in plaats van een data-interface voor de aanstootgevende variabelen (bijv set_foo() en
krijg_foo() accessoirefuncties). [Deze optie is specifiek voor de i386 PE-doelpoort
van de linker]

--automatisch importeren uitschakelen
Probeer geen geavanceerde koppeling van "_symbol" naar "__imp__symbol" voor DATA
importeren uit DLL's. [Deze optie is specifiek voor de i386 PE-gerichte poort van de
linker]

--enable-runtime-pseudo-reloc
Als uw code uitdrukkingen bevat die worden beschreven in de sectie --enable-auto-import, dat wil zeggen:
DATA importeert uit DLL met een offset die niet nul is, deze schakelaar zal een vector creëren van
'runtime pseudo-verhuizingen' die door runtime-omgeving kunnen worden gebruikt om aan te passen
verwijzingen naar dergelijke gegevens in uw klantcode. [Deze optie is specifiek voor de i386 PE
gerichte poort van de linker]

--disable-runtime-pseudo-reloc
Maak geen pseudo-verplaatsingen voor niet-nul-offset DATA-import vanuit DLL's. [Dit
optie is specifiek voor de i386 PE-gerichte poort van de linker]

--enable-extra-pe-debug
Toon aanvullende debug-informatie met betrekking tot het automatisch importeren van symbolen. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--sectie-uitlijning
Stelt de sectie-uitlijning in. Secties in het geheugen beginnen altijd op adressen die:
zijn een veelvoud van dit getal. Standaard ingesteld op 0x1000. [Deze optie is specifiek voor de
i386 PE-gerichte poort van de linker]

--stapelen reserve
--stapelen reserve,plegen
Specificeer het aantal bytes geheugen dat moet worden gereserveerd (en optioneel vastgelegd) dat moet worden gebruikt als
stapel voor dit programma. De standaard is 2 MB gereserveerd, 4K vastgelegd. [Deze optie is
specifiek voor de i386 PE-gerichte poort van de linker]

--subsysteem welke
--subsysteem welke:groot
--subsysteem welke:groot.minder
Specificeert het subsysteem waaronder uw programma zal worden uitgevoerd. De wettelijke waarden voor
welke zijn "native", "windows", "console", "posix" en "xbox". U kunt optioneel instellen:
de subsysteemversie ook. Numerieke waarden worden ook geaccepteerd voor: welke. [Deze optie
is specifiek voor de i386 PE-gerichte poort van de linker]

De volgende opties stellen vlaggen in het veld "DllCharacteristics" van het PE-bestand in
header: [Deze opties zijn specifiek voor PE-gerichte poorten van de linker]

--hoge-entropie-va
Afbeelding is compatibel met 64-bits randomisatie van adresruimtelay-out (ASLR).

--dynamische basis
Het basisadres van de afbeelding kan worden verplaatst met behulp van randomisatie van de indeling van de adresruimte
(ASLR). Deze functie is geïntroduceerd met MS Windows Vista voor i386 PE-doelen.

--forceinteg
Er worden code-integriteitscontroles uitgevoerd.

--nxcompat
De afbeelding is compatibel met Preventie van gegevensuitvoering. Deze functie was
geïntroduceerd met MS Windows XP SP2 voor i386 PE-doelen.

--geen-isolatie
Hoewel de afbeelding isolatie begrijpt, isoleer de afbeelding niet.

--nee-seh
De afbeelding gebruikt geen SEH. Vanuit deze afbeelding mag geen SE-handler worden aangeroepen.

--niet-binden
Bind deze afbeelding niet.

--wdmdriver
De driver gebruikt het MS Windows Driver Model.

--tsaware
De afbeelding is op de hoogte van Terminal Server.

--insert-tijdstempel
--geen-tijdstempel invoegen
Voeg een echte tijdstempel in de afbeelding in. Dit is het standaardgedrag omdat het overeenkomt
legacy code en het betekent dat de afbeelding zal werken met andere, propriëtaire tools. De
probleem met deze standaardinstelling is dat dit ertoe leidt dat er iets andere afbeeldingen worden
geproduceerd telkens dezelfde bronnen worden gekoppeld. De optie --geen-tijdstempel invoegen wel
worden gebruikt om een ​​nulwaarde voor de tijdstempel in te voegen, dit zorgt ervoor dat binaire bestanden worden geproduceerd
van identieke bronnen identiek zullen vergelijken.

Het C6X uClinux-doel gebruikt een binair formaat genaamd DSBT om gedeelde bibliotheken te ondersteunen. Elk
gedeelde bibliotheek in het systeem moet een unieke index hebben; alle uitvoerbare bestanden gebruiken een index van
0.

--dsbt-formaat grootte
Deze optie stelt het aantal items in de DSBT in van het huidige uitvoerbare of gedeelde
bibliotheek naar grootte. De standaardinstelling is om een ​​tabel met 64 items te maken.

--dsbt-index index
Deze optie stelt de DSBT-index van het huidige uitvoerbare bestand of de gedeelde bibliotheek in op: index.
De standaardwaarde is 0, wat geschikt is voor het genereren van uitvoerbare bestanden. Als een gedeelde
bibliotheek wordt gegenereerd met een DSBT-index van 0, de "R_C6000_DSBT_INDEX" relocs zijn
gekopieerd naar het uitvoerbestand.

De --no-merge-exidx-items switch schakelt het samenvoegen van aangrenzende exidx-items in
frame ontspannen info.

De 68HC11- en 68HC12-linkers ondersteunen specifieke opties om de geheugenbank te besturen
wisselen van mapping en het genereren van trampolinecodes.

--geen-trampoline
Deze optie schakelt het genereren van trampolines uit. Standaard is een trampoline
gegenereerd voor elke far-functie die wordt aangeroepen met behulp van een "jsr" -instructie (dit
gebeurt wanneer een aanwijzer naar een verre functie wordt genomen).

--bank-venster naam
Deze optie geeft aan de linker de naam van het geheugengebied in de GEHEUGEN
specificatie die het geheugenbankvenster beschrijft. De definitie van een dergelijke regio is:
vervolgens gebruikt door de linker om paging en adressen in het geheugenvenster te berekenen.

De volgende opties worden ondersteund om de afhandeling van GOT-generatie te regelen bij het koppelen voor:
68K doelen.

--gekregen= type dan:
Deze optie vertelt de linker welk GOT-generatieschema moet worden gebruikt. type dan: zou er een moeten zijn
of single, negatief, meervoudig or doel. Raadpleeg voor meer informatie het item Info
For ld.

De volgende opties worden ondersteund om het genereren van microMIPS-instructies te besturen wanneer:
koppeling voor MIPS-doelen.

--insn32
--geen-insn32
Deze opties bepalen de keuze van microMIPS-instructies die worden gebruikt in code die is gegenereerd door:
de linker, zoals die in de PLT of luie bindingsstubs, of in relaxatie. Indien
--insn32 wordt gebruikt, gebruikt de linker alleen 32-bits instructiecoderingen. Standaard
of als --geen-insn32 wordt gebruikt, worden alle instructiecoderingen gebruikt, inclusief 16-bits coderingen
waar mogelijk.

MILIEU


U kunt het gedrag van ld met de omgevingsvariabelen "GNUTARGET",
"LDEMULATION" en "COLLECT_NO_DEMANGLE".

"GNUTARGET" bepaalt het objectformaat van het invoerbestand als u geen gebruik maakt van -b (of het synoniem ervan)
--formaat). De waarde moet een van de BFD-namen zijn voor een invoerformaat. Als er geen
"GNUTARGET" in het milieu, ld gebruikt het natuurlijke formaat van het doel. Als "GNUTARGET"
is ingesteld op "standaard", probeert BFD het invoerformaat te ontdekken door binair te onderzoeken
invoerbestanden; deze methode slaagt vaak, maar er zijn mogelijke dubbelzinnigheden, aangezien er
is geen methode om ervoor te zorgen dat het magische getal dat wordt gebruikt om object-bestandsindelingen te specificeren, is
uniek. De configuratieprocedure voor BFD op elk systeem plaatst echter de
conventionele formaat voor dat systeem eerst in de zoeklijst, dus dubbelzinnigheden worden opgelost
voorstander van conventie.

"LDEMULATION" bepaalt de standaardemulatie als u de . niet gebruikt -m optie. De
emulatie kan verschillende aspecten van linkergedrag beïnvloeden, met name de standaard linker
script. U kunt de beschikbare emulaties weergeven met de --uitgebreid or -V opties. Als de
-m optie niet wordt gebruikt en de omgevingsvariabele "LDEMULATION" niet is gedefinieerd,
standaardemulatie hangt af van hoe de linker is geconfigureerd.

Normaal gesproken zal de linker standaard symbolen ontmantelen. Echter, als
"COLLECT_NO_DEMANGLE" is ingesteld in de omgeving, dan zal het standaard niet demangleren
symbolen. Deze omgevingsvariabele wordt op een vergelijkbare manier gebruikt door de "gcc" linker
wrapper programma. De standaard kan worden overschreven door de --ontmantelen en --geen-demangle
opties.

Gebruik aarch64-linux-gnu-ld.bfd online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    DivFix + +
    DivFix + +
    DivFix++ is van jou AVI video reparatie en
    preview-software. Het is ontworpen voor reparatie
    en voorbeeldbestanden die worden gedownload
    van ed2k(emule), torrent, gnutella, ftp...
    DivFix++ downloaden
  • 2
    JBoss-gemeenschap
    JBoss-gemeenschap
    Door de gemeenschap aangestuurde projecten met de
    nieuwste innovaties voor cutting edge
    apps. Ons vlaggenschipproject JBoss AS is
    de toonaangevende Open Source,
    normconform...
    JBoss-community downloaden
  • 3
    Django Filer
    Django Filer
    django Filer is een bestandsbeheerprogramma
    applicatie voor django die maakt
    omgaan met bestanden en afbeeldingen een fluitje van een cent.
    django-filer is een bestandsbeheerprogramma
    aanvraag voor djang...
    Django filer downloaden
  • 4
    xCAT
    xCAT
    Toolkit voor extreem clusterbeheer.
    xCAT is een schaalbaar clusterbeheer
    en inrichtingstool die biedt
    hardwarecontrole, detectie en besturingssysteem
    schijf vol/di...
    XCAT downloaden
  • 5
    Psi
    Psi
    Psi is platformonafhankelijke krachtige XMPP
    client ontworpen voor ervaren gebruikers.
    Er zijn builds beschikbaar voor MS
    Windows, GNU/Linux en macOS.. Publiek:
    Eindgebruikers...
    Psi downloaden
  • 6
    Blobbyvolley 2
    Blobbyvolley 2
    Officiële voortzetting van de beroemde
    Blobby Volley 1.x arcadespel..
    Doelgroep: eindgebruikers/desktop. Gebruiker
    interface: OpenGL, SDL. Programmering
    Taal: C++, Lua. C...
    Blobbyvolley 2 downloaden
  • Meer "

Linux-commando's

Ad