EngelsFransSpaans

Ad


OnWorks-favicon

h8300-hitachi-coff-ld - Online in de cloud

Voer h8300-hitachi-coff-ld uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht h8300-hitachi-coff-ld 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 - Met behulp van 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", of de
manual ld: de GNU linker, 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. Merk op dat het specificeren van een script op deze manier alleen maar een aanvulling is op de main
linker-script; gebruik de -T optie om het standaard linkerscript volledig te vervangen.

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 slechts worden voorafgegaan door twee streepjes. Dit 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,--startgroep foo.o bar.o -Wl,--eindgroep

Dit is belangrijk, omdat het compilerstuurprogramma anders de
linker-opties, wat resulteert in een slechte link.

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

-atrefwoord
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.

-Aarchitectuur
--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.

-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.

-E
--export-dynamisch
Wanneer u een dynamisch gekoppeld uitvoerbaar bestand maakt, voegt u alle symbolen toe aan het dynamische symbool
tafel. De dynamische symbolentabel is de set symbolen die zichtbaar zijn vanuit dynamic
objecten tijdens runtime.

Als u deze optie niet gebruikt, 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 het versiescript gebruiken om te bepalen welke symbolen aan het
dynamische symbooltabel als het uitvoerformaat dit ondersteunt. Zie de beschrijving van
--versie-script in @ref{VERSIE}.

-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
--extra 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.

-fin 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.

-Gwaarde
--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 ECOFF die putting . ondersteunt
grote en kleine objecten in verschillende secties. Dit wordt genegeerd voor een ander object
bestandsformaten.

-hnaam
-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).

-in het 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.

-larchief
--bibliotheek=archief
Archiefbestand toevoegen archief naar de lijst met bestanden die u wilt koppelen. Deze optie kan overal worden gebruikt
aantal keren. ld zal in de padlijst zoeken naar exemplaren van "libarchief.a" For
elk archief gespecificeerd.

Op systemen die gedeelde bibliotheken ondersteunen, ld kan ook zoeken naar bibliotheken met
andere extensies dan ".a". Specifiek, op ELF- en SunOS-systemen, ld zal zoeken naar een
directory voor een bibliotheek met de extensie ".so" voordat u zoekt naar een bibliotheek met een
extensie van ".a". Volgens afspraak duidt een extensie ".so" een gedeelde bibliotheek aan.

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.

-Lzoekmap
--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.

If zoekmap begint met "=", dan wordt "=" vervangen door de systeemroot voorvoegsel, een
pad 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.

-mwedijver
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 en symbolen in het geheugen worden opgeslagen.

* Hoe gemeenschappelijke symbolen worden toegewezen.

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

-n
--magisch
Schakel pagina-uitlijning van secties uit en markeer de uitvoer indien mogelijk 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
binary.

-q
--uitzenden-relocs
Laat verplaatsingssecties en inhoud achter in volledig gekoppelde uitvoerbare bestanden. Link posten
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.

-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.

-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.

-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.

--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. Voor de meeste doelen zijn dit allemaal lokale symbolen waarvan
namen beginnen met L.

-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.

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.

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
Schakelt de productie van kopieerverplaatsingen uit.

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".

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.

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
daadwerkelijk nodig is. --als-nodig zorgt ervoor dat DT_NEEDED-tags alleen worden verzonden voor
bibliotheken die voldoen aan een symboolreferentie van reguliere objecten die niet gedefinieerd is
op het moment dat de bibliotheek werd gekoppeld. --niet-zoals-nodig herstelt de standaard
gedrag.

--toevoegen-nodig
--geen-toevoegen-nodig
Deze optie beïnvloedt de behandeling van dynamische bibliotheken van ELF DT_NEEDED-tags in
dynamische bibliotheken vermeld op de opdrachtregel na de --geen-toevoegen-nodig optie.
Normaal gesproken voegt de linker een DT_NEEDED-tag toe voor elke dynamische bibliotheek van DT_NEEDED
labels. --geen-toevoegen-nodig zorgt ervoor dat DT_NEEDED-tags nooit worden verzonden voor die bibliotheken
van DT_NEEDED-tags. --toevoegen-nodig herstelt het standaardgedrag.

-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.

-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 is alleen zinvol op ELF-platforms die gedeelde bibliotheken ondersteunen.

--check-secties
--no-check-secties
Vraagt ​​de linker niet om sectie-adressen te controleren nadat ze zijn toegewezen om te zien of
er enige overlap is. Normaal gesproken zal de linker deze controle uitvoeren, en als hij er een vindt
overlapt, zal dit passende foutmeldingen opleveren. De linker weet ervan, en
houdt wel rekening met secties in overlays. Het standaardgedrag kan worden hersteld
met behulp van de opdrachtregelschakelaar --check-secties.

--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. De overige bestanden bevatten verwijzingen naar het symbool.

--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 gelijkteken (``=''), 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.

--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.

--fatale-waarschuwingen
Behandel alle waarschuwingen als fouten.

--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.

--geen-gc-secties
--gc-secties
Schakel het verzamelen van ongebruikte invoersecties in. Het wordt genegeerd op doelen die dat wel doen
ondersteunt deze optie niet. Deze optie is niet compatibel met: -r. Het standaardgedrag
(van het niet uitvoeren van deze garbage collection) kan worden hersteld door op te geven
--geen-gc-secties op de opdrachtregel.

--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 (standaard) of niet-gedefinieerde symbolen in gedeelde bibliotheken toe. Deze schakelaar
is gelijk aan --geen-undefined behalve dat het het gedrag bepaalt wanneer de
ongedefinieerde symbolen bevinden zich in een gedeelde bibliotheek in plaats van in een gewoon objectbestand. Het doet
geen invloed op hoe ongedefinieerde symbolen in gewone objectbestanden worden behandeld.

De reden dat --allow-shlib-ungedefinieerd is de standaard is dat de gedeelde bibliotheek
gespecificeerd op het moment van koppelen is mogelijk niet hetzelfde als degene die beschikbaar is bij het laden
tijd, dus de symbolen kunnen tijdens het laden daadwerkelijk worden opgelost. Plus er zijn enkele
systemen (bijv. BeOS) waar ongedefinieerde symbolen in gedeelde bibliotheken normaal zijn. (De kern
patcht ze tijdens het laden om te selecteren welke functie het meest geschikt is voor de huidige
architectuur. Dit wordt bijvoorbeeld gebruikt om dynamisch een geschikte memset te selecteren
functie). Blijkbaar is het ook normaal dat gedeelde bibliotheken van HPPA undefined hebben
symbolen.

--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.

--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
Een optie met machineafhankelijke effecten. Deze optie wordt alleen ondersteund op een paar
targets.

Op sommige platforms is de --ontspannen optie voert globale optimalisaties uit die
mogelijk wanneer de linker adressering in het programma oplost, zoals ontspannen adres
modi en het synthetiseren van nieuwe instructies in het uitvoerobjectbestand.

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.

--retain-symbols-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
vorm een ​​runtime-zoekpatch 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 zich mogelijk op NFS-gemounte bestandssystemen bevinden.

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. Het is alleen voor de native linker.

3. Op een ELF-systeem, als de -rpad en "rpath-link" opties niet zijn gebruikt, zoek de
inhoud van de omgevingsvariabele "LD_RUN_PATH". Het is voor de natieve linker
alleen.

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

5. 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
Deze optie vertelt ld om de algemene symbolen op grootte te sorteren wanneer ze in de worden geplaatst
geschikte uitvoersecties. Eerst komen alle symbolen van één byte, dan alle twee
byte, dan alle vier byte, en dan al het andere. Dit is om gaten te voorkomen
tussen symbolen vanwege uitlijningsbeperkingen.

--sorteer-sectie naam
Met deze optie wordt 'SORT_BY_NAME' toegepast op alle sectiepatronen met jokertekens in de linker
scripts.

--sorteer-sectie opstelling
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-verplaatsing [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 gelijkteken (``=''), En org.

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

--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
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.

--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 is alleen zinvol op ELF
platforms die gedeelde bibliotheken ondersteunen.

--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 oefening 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-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.

--wikkelen 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.

--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 dynamische tags worden gemaakt
naar behoefte. Als u opgeeft: --disable-nieuwe-dtags, worden er geen nieuwe dynamische tags gemaakt.
De nieuwe dynamische tags worden standaard niet gemaakt. Merk op dat deze opties alleen zijn:
beschikbaar 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.

--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 overstap is het instellen van de standaard hashtabelgrootte op 1021
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.

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-stdcall-fixup
--disable-stdcall-fixup
Als de link een symbool vindt dat hij niet kan oplossen, zal hij proberen ``fuzzy.'
linken'' 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]

--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]

--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
Geef de hoeveelheid geheugen op die u wilt reserveren (en eventueel vastleggen) en die als heap moet worden gebruikt
dit programma. De standaardwaarde is 1Mb 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, is de juiste bit in het veld ``Charateristics'' van de COFF-header
ingesteld om aan te geven dat dit uitvoerbare bestand virtuele adressen groter dan 2 ondersteunt
gigabytes. Dit moet worden gebruikt in combinatie met de /3GB of /USERVA=waarde megabytes
schakelaar in de sectie ``[besturingssystemen]'' van BOOT.INI. Anders dit stukje
heeft geen effect. [Deze optie is specifiek voor op PE gerichte poorten van de linker]

--grote-afbeelding-versie waarde
Stelt het hoofdnummer van de ``imageversie'' 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 ``imageversie'' 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
Kies automatisch de afbeeldingsbasis voor DLL's, tenzij er een is opgegeven met de
"--image-base" argument. Door een hash te gebruiken die is gegenereerd op basis van de dll-naam om unique te creëren
afbeeldingsbases voor elke DLL, botsingen in het geheugen en verplaatsingen die het programma kunnen vertragen
uitvoering worden vermeden. [Deze optie is specifiek voor 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.

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 (gedefinieerd(_WIN32) ⎪⎪ gedefinieerd(__CYGWIN__)) && \
!(gedefinieerd(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-imports van DLL's. Dit is
de standaard. [Deze 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
Geef de hoeveelheid geheugen op die u wilt reserveren (en optioneel vastleggen) en die als stapel moet worden gebruikt
voor dit programma. De standaardwaarde is 2Mb 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 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.

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 h8300-hitachi-coff-ld online met de services van onworks.net


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