NAVN ld - Brug af LD, GNU linkeren SYNOPSIS ld muligheder objfile … BESKRIVELSE ld kombinerer en række objekt- og arkivfiler, flytter deres data og binder symbolreferencer op. Normalt er det sidste trin i kompilering af et program at køreld. ld accepterer Linker Command Language-filer skrevet i et supersæt af AT & T's Link Editor Command Language-syntaks, for at give eksplicit og fuldstændig kontrol over forbindelsesprocessen. Denne man side beskriver ikke kommandosproget; seld indtastning i "info" eller den manuelle ld: GNU linkeren, for detaljer om kommandosprog og andre aspekter af theNNU linker. Denne version afld bruger de generelle formål BFD biblioteker til at operere på objektfiler. Dette tillader detld at læse, kombinere og skrive objektfiler i mange forskellige formater --- for eksempel COFF eller "a.out". Forskellige formater kan knyttes sammen for at producere enhver tilgængelig slags objektfil. Bortset fra sin fleksibilitet er GNU linkeren mere nyttigt end andre linkere til at levere diagnostiske oplysninger. Mange linkere forlader udførelsen straks, når der opstår en fejl; når det er muligt,ld fortsætter med at udføre, så du kan identificere andre fejl (eller i nogle tilfælde at få en uddatafil på trods af fejlen). GNU linkerenld er beregnet til at dække en bred vifte af situationer, og at være så kompatibel som muligt med andre linkere. Som følge heraf har du mange valgmuligheder for at styre dets adfærd. MULIGHEDER Linkeren understøtter en overflod af kommandolinjevalg, men i praksis anvendes få af dem i en bestemt sammenhæng. For eksempel en hyppig anvendelse afld er at forbinde standard Unix-objektfiler på et standard, understøttet Unix-system. På et sådant system, for at linke en fil "hello.o": jeg gør /lib/crt0.o hej.o-lcDette fortællerld at producere en fil kaldet produktion som følge af at forbinde filen "/lib/crt0.o" med "hello.o" og biblioteket "libc.a", som kommer fra standard søgning kataloger. (Se diskussionen af-l mulighed nedenfor.) Nogle af kommandolinjemulighederne tilld kan specificeres på ethvert tidspunkt i kommandolinjen. Men muligheder, der henviser til filer, som f.eks-l eller-T, fordi filen læses på det tidspunkt, hvor indstillingen vises på kommandolinjen i forhold til objektfiler og andre filindstillinger. Gentagelse af ikke-fil-indstillinger med et andet argument vil heller ikke have nogen yderligere virkning eller tilsidesætte tidligere forekomster (dem længere til venstre på kommandolinjen) for denne mulighed. Valgmuligheder, der kan angives mere end én gang, er angivet i beskrivelserne nedenfor. Ikke-valg argumenter er objektfiler eller arkiver, der skal knyttes sammen. De kan følge, forudgå eller blandes med kommandolinjeindstillinger, bortset fra at et objektfil argument ikke må placeres mellem en mulighed og dens argument. Normalt kaldes linkeren med mindst en objektfil, men du kan angive andre former for binære inputfiler ved hjælp af-l, -R, og script kommandosproget. Hvis ingen Binære input filer overhovedet er angivet, linkeren producerer ingen output og udsteder meddelelsenIngen input filer. Hvis linkeren ikke kan genkende formatet for en objektfil, antages det at det er et linker script. Et script, der er angivet på denne måde, forstærker det primære linker script, der bruges til linket (enten standard linker script eller den ene, der er angivet ved brug af-T). Denne funktion gør det muligt for linkeren at linke mod en fil, der ser ud til at være en genstand eller et arkiv, men definerer kun nogle symbolværdier eller bruger "INPUT" eller "GRUPPE" for at indlæse andre objekter. Bemærk, at angivelse af et script på denne måde blot øger hovedlinker scriptet; brug-T mulighed for at erstatte standard linker script helt. For valgmuligheder, hvis navne er et enkelt bogstav, skal valgargumenter enten følge valgbrevet uden at intervenere hvide rum eller angives som separate argumenter umiddelbart efter den mulighed, der kræver dem. For valgmuligheder, hvis navne er flere bogstaver, kan enten et bindestreg eller to forudgå optionens navn; for eksempel,-trace-symbol og--trace-symbol er ækvivalente. Bemærk - der er en undtagelse fra denne regel. Flere bogstaver, der starter med små bogstaver 'o', kan kun foregå med to bindestreger. Dette er at reducere forvirring med-o mulighed. Så for eksempel-omagic indstiller outputfilnavnet tilmagi hvorimod--omagic indstiller NMAGIC-flagget på output. Argumenter til flere bogstaver skal enten adskilles fra optionens navn med et lige-tegn eller angives som separate argumenter umiddelbart efter den mulighed, der kræver dem. For eksempel,--Trace-symbol foo og--trace-symbol = foo er ækvivalente. Unikke forkortelser af navnene på flere bogstaver optages accepteres. Bemærk - hvis linkeren påberåbes indirekte via en kompilatordriver (f.eksgcc) så skal alle kommandolinjens linker være præfikset af-Wl, (eller hvad der passer til den pågældende compiler driver) som denne: gcc -Wl, - startgruppe foo.o bar.o -Wl, - endgroupDette er vigtigt, fordi ellers kompilatorprogrammet muligvis kan droppe linkerindstillingerne, hvilket resulterer i en dårlig link. Her er en tabel over de generiske kommandolinjeafbrydere accepteret af GNU-linkeren: -en søgeord Denne indstilling støttes til HP / UX-kompatibilitet. Det søgeord argument skal være en af strengenearkiv, delt, ellerStandard. -aarchive er funktionelt ækvivalent med-Bstatic, og de to andre søgeord er funktionelt ækvivalente med-Bdynamic. Denne mulighed kan bruges et hvilket som helst antal gange. -EN arkitektur --architecture = arkitektur I den nuværende udgivelse afld, denne indstilling er kun nyttig for Intel 960-familien af arkitekturer. I detld konfiguration, arkitektur argument identificerer den særlige arkitektur i 960 familien, hvilket muliggør nogle sikkerhedsforanstaltninger og ændrer arkivbibliotekets søgevej. Fremtidige udgivelser afld kan understøtte lignende funktionalitet for andre arkitektfamilier. -b input-format --format = input-format ld kan konfigureres til at understøtte mere end en slags objektfil. Hvis dinld er konfigureret på denne måde, kan du bruge-b mulighed for at angive det binære format for input objektfiler, der følger denne indstilling på kommandolinjen. Selv nårld er konfigureret til at understøtte alternative objektformater, behøver du normalt ikke at angive dette, somld bør konfigureres til at forvente som standardindgangsformat det mest almindelige format på hver maskine. input-format er en tekststreng, navnet på et bestemt format understøttet af BFD-biblioteker. (Du kan liste de tilgængelige binære formater medobjdump -i.) Du kan muligvis bruge denne indstilling, hvis du linker filer med et usædvanligt binært format. Du kan også bruge-b at skifte formater eksplicit (ved sammenkædning af objektfiler i forskellige formater) ved at inkludere-b input-format før hver gruppe af objektfiler i et bestemt format. Standardformatet er taget fra miljøvariablen "GNUTARGET". Du kan også definere inputformatet fra et script ved hjælp af kommandoen "TARGET"; -c MR-commandfile --mri-script = MR-commandfile For kompatibilitet med linkere produceret af MR,ld accepterer script-filer, der er skrevet i et alternativt, begrænset kommandosprog, beskrevet i afsnittet MRI-kompatibel scriptfiler i GNU ld-dokumentationen. Indsæt MRI script filer med mulighed-c; brug-T mulighed for at køre linker scripts skrevet i det generelle formålld skriptsprog. Hvis MR-cmdfile eksisterer ikke,ldsøger det i de mapper, der er angivet af nogen-L muligheder. -d -dc -DP Disse tre muligheder er ækvivalente; Flere formularer understøttes for kompatibilitet med andre linkere. De tildeler plads til fælles symboler, selvom der er angivet en flyttbar outputfil (med-r). Skriftkommandoen "FORCE_COMMON_ALLOCATION" har samme effekt. -e indgang --entry = indgang Brug indgang som det eksplicitte symbol for begyndelsen af udførelsen af dit program, snarere end standardindtastningspunktet. Hvis der ikke er angivet noget symbol indgang , vil linkeren forsøge at analysere indgang som et tal, og brug det som indtastningsadresse (tallet vil blive fortolket i base 10, du kan bruge en førende0x for base 16, eller en førende0 for base 8). -E --export-dynamisk Når du opretter en dynamisk forbundet eksekverbar, skal du tilføje alle symboler til den dynamiske symboltabel. Den dynamiske symboltabel er sæt af symboler, som er synlige fra dynamiske objekter i løbetid. Hvis du ikke bruger denne indstilling, indeholder den dynamiske symboltabel normalt kun de symboler, der refereres af et dynamisk objekt, der er nævnt i linket. Hvis du bruger "dlopen" til at indlæse et dynamisk objekt, der skal henvise til de symboler, der er defineret af programmet, snarere end et andet dynamisk objekt, så skal du sandsynligvis bruge denne mulighed, når du knytter selve programmet. Du kan også bruge versionsskriptet til at styre, hvilke symboler der skal tilføjes til den dynamiske symboltabel, hvis outputformatet understøtter det. Se beskrivelsen af--version-script i @ ref {VERSION}. -EB Link store endian objekter. Dette påvirker standard outputformatet. -El Link små endian objekter. Dette påvirker standard outputformatet. -f --auxiliary navn Når du opretter et ELF-delt objekt, skal du indstille det interne DT_AUXILIARY-felt til det angivne navn. Dette fortæller den dynamiske linker, at symboltabellen for det delte objekt skal bruges som et hjælpefilter på symboltabellen for den delte objekt navn . Hvis du senere linker et program mod dette filterobjekt, så vises den dynamiske linker i feltet DT_AUXILIARY, når du kører programmet. Hvis den dynamiske linker løser eventuelle symboler fra filterobjektet, kontrollerer den først, om der er en definition i det delte objekt navn . Hvis der er en, vil den blive brugt i stedet for definitionen i filterobjektet. Det delte objekt navn behøver ikke eksistere. Således delte objektet navn kan bruges til at give en alternativ implementering af visse funktioner, måske til debugging eller til maskinspecifik ydeevne. Denne mulighed kan angives mere end én gang. DT_AUXILIARY-indtastningerne oprettes i den rækkefølge, de vises på kommandolinjen. -F navn --filter navn Når du opretter et ELF-delt objekt, skal du indstille det interne DT_FILTER-felt til det angivne navn. Dette fortæller den dynamiske linker, at symboltabellen for det delte objekt, der oprettes, skal bruges som et filter på symboltabellen for den delte objekt navn . Hvis du senere linker et program mod dette filterobjekt, så vises den dynamiske linker, når du kører programmet, feltet DT_FILTER. Den dynamiske linker vil løse symboler i henhold til symbolobjektet for filterobjektet som normalt, men det vil faktisk forbinde de definitioner, der findes i det delte objekt navn . Filterobjektet kan således bruges til at vælge en delmængde af de symboler, der leveres af objektet navn . Nogle ældre linkere brugte-F mulighed i hele et kompileringsværktøjskæde til angivelse af objektfilformat for både input- og outputobjektfiler. GNU linkeren bruger andre mekanismer til dette formål:-b, --format, --oformat indstillinger, "TARGET" kommandoen i linker scripts og "GNUTARGET" miljøvariablen. GNU linkeren vil ignorere-F mulighed, når du ikke opretter et ELF-delt objekt. -fini navn Når du opretter et ELF-eksekverbart eller delt objekt, skal du ringe til NAME, når det eksekverbare eller delte objekt aflastes ved at indstille DT_FINI til adressen til funktionen. Som standard bruger linkeren "_fini" som funktion til at ringe. -g Ignoreret. Forudsat for kompatibilitet med andre værktøjer. -G værdi --gpsize = værdi Indstil den maksimale størrelse af objekter, der skal optimeres ved hjælp af GP-registret til størrelse . Dette er kun meningsfuldt for objektfilformater som MIPS ECOFF, som understøtter at sætte store og små objekter i forskellige sektioner. Dette ignoreres for andre objektfilformater. -h navn -soname = navn Når du opretter et ELF-delt objekt, skal du indstille det interne DT_SONAME-felt til det angivne navn. Når en eksekverbar forbindelse er forbundet med et delt objekt, der har et DT_SONAME-felt, vil den dynamiske linker forsøge at indlæse det delte objekt, der er specificeret af DT_SONAME-feltet, i stedet for at bruge det filnavn, der er givet til linkeren, når den eksekverbare køres. -jeg Udfør et inkrementalt link (samme som mulighed-r). -i det navn Når du opretter et ELF-eksekverbart eller delt objekt, skal du ringe til NAME, når det eksekverbare eller delte objekt er indlæst, ved at indstille DT_INIT til adressen til funktionen. Som standard bruger linkeren "_init" som funktion til at ringe. -l arkiv --library = arkiv Tilføj arkivfil arkiv til listen over filer at linke. Denne mulighed kan bruges et hvilket som helst antal gange.ld vil søge sin sti-liste for forekomster af "libarchive.a" for hver arkiv specificeret. På systemer, der understøtter delte biblioteker,ld kan også søge efter biblioteker med andre udvidelser end ".a". Specifikt på ELF og SunOS systemer,ld vil søge i en mappe til et bibliotek med en udvidelse af ".so" før du søger efter en med en udvidelse af ".a". Ved konventionen angiver en ".so" -udvidelse et delt bibliotek. Linkeren vil kun søge et arkiv én gang på det sted, hvor det er angivet på kommandolinjen. Hvis arkivet definerer et symbol, der var udefineret i noget objekt, der dukkede op foran arkivet på kommandolinjen, vil linkeren indeholde den relevante fil (er) fra arkivet. Et undefined symbol i et objekt, der vises senere på kommandolinjen, vil dog ikke få linkeren til at søge i arkivet igen. Se-( mulighed for at tvinge linkeren til at søge arkiver flere gange. Du kan angive det samme arkiv flere gange på kommandolinjen. Denne type arkivsøgning er standard for Unix-linkere. Men hvis du brugerld påAIX, bemærk at det adskiller sig fra AIX-linkerens opførsel. -L searchdir --library-path = searchdir Tilføj sti searchdir til listen over stier, somld vil søge efter arkivbiblioteker ogld kontrol scripts. Du kan bruge denne indstilling et hvilket som helst antal gange. Katalogerne søges i den rækkefølge, de er angivet på kommandolinjen. Mapper, der er angivet på kommandolinjen, søges før standardmapper. Alle-L muligheder gælder for alle-l muligheder, uanset hvilken rækkefølge indstillingerne vises i. Hvis searchdir begynder med "=", så erstattes "=" med sysroot præfiks , en sti angivet, når linkeren er konfigureret. Standard sæt af stier søgt (uden at blive angivet med-L) afhænger af hvilken emuleringsmodusld bruger, og i nogle tilfælde også om, hvordan den blev konfigureret. Stierne kan også angives i et link script med "SEARCH_DIR" kommandoen. De mapper, der er angivet på denne måde, søges på det punkt, hvor linkerskriptet vises i kommandolinjen. -m emulering Emulere emulering linker. Du kan liste de tilgængelige emuleringer med--ordrig eller-Vmuligheder. Hvis-m valgmulighed er ikke brugt, er emuleringen taget fra miljøvariablen "LDEMULATION", hvis den er defineret. Ellers afhænger standardemuleringen af, hvordan linkeren blev konfigureret. -M --print-map Udskriv et linkkort til standard output. Et linkkort giver information om linket, herunder følgende: * Hvor objektfiler og symboler er kortlagt i hukommelsen. * Hvordan fælles symboler tildeles. * Alle arkivmedlemmer indgår i linket med en omtale af symbolet, som fik arkivmedlemmet til at blive bragt ind. -n --nmagic Sluk sidejustering af sektioner, og marker output som "NMAGIC", hvis det er muligt. N --omagic Indstil tekst og data sektioner til læsbar og skrivbar. Du må heller ikke sidelinjere datasegmentet og deaktivere sammenkædning mod delte biblioteker. Hvis outputformat understøtter Unix-stil magiske numre, skal du markere output som "OMAGIC". --no-omagic Denne mulighed forkaster de fleste af virkningerne afN mulighed. Det sætter tekstafsnittet til skrivebeskyttet, og tvinger datasegmentet til at blive sidelinjeret. Bemærk - denne mulighed gør det ikke muligt at forbinde mod delte biblioteker. Brug-Bdynamic for det. -o produktion --output = produktion Brug produktion som navnet på programmet produceret afld; Hvis denne indstilling ikke er angivet, skal navnet a.out bruges som standard. Skriptkommandoen "OUTPUT" kan også angive outputfilnavnet. -O niveau Hvis niveau er en numerisk værdi, der er større end nulld optimerer udgangen. Dette kan tage væsentligt længere tid og bør derfor kun aktiveres for den endelige binære. -q --emit-relocs Forlad flyttesektioner og indhold i fuldt sammenkædede exececutables. Postlinkanalyse og optimeringsværktøjer kan have brug for disse oplysninger for at udføre korrekte modifikationer af eksekverbare filer. Dette resulterer i større eksekverbare filer. Denne mulighed understøttes i øjeblikket kun på ELF-platforme. -r --relocateable Generer relocatable output --- dvs., Generere en output fil, der igen kan tjene som input tilld. Dette kaldes ofte delvis sammenkobling . Som en bivirkning, i miljøer, der understøtter standard Unix magiske numre, indstiller denne indstilling også outputfilens magiske nummer til "OMAGIC". Hvis denne indstilling ikke er angivet, produceres en absolut fil. Når du forbinder C ++-programmer, denne mulighed vil ikke løse referencer til konstruktører; at gøre det, brug-ur. Når en inputfil ikke har samme format som outputfilen, understøttes delvist link kun, hvis den indgående fil ikke indeholder nogen flytninger. Forskellige outputformater kan have yderligere begrænsninger; for eksempel kan nogle "a.out" -baserede formater ikke understøtte delvis sammenkobling med inputfiler i andre formater overhovedet. Denne mulighed gør det samme som-jeg. -R filnavn --just-symboler = filnavn Læs symbolnavne og deres adresser fra filnavn , men flyt ikke det eller medtag det i udgangen. Dette gør det muligt for din outputfil at referere symbolsk til absolutte steder af hukommelse, der er defineret i andre programmer. Du kan bruge denne indstilling mere end én gang. For kompatibilitet med andre ELF linkere, hvis-R valgmulighed efterfølges af et katalognavn, snarere end et filnavn, det behandles som-rpath mulighed. -s --strip-all Fjern alle symboloplysninger fra outputfilen. -S --strip-debug Udelad debugger-symboloplysninger (men ikke alle symboler) fra outputfilen. -t --trace Udskriv navnene på inputfilerne somld behandler dem. -T scriptfilen --script = scriptfilen Brug scriptfilen som linker script. Dette script erstatterlds standard linker script (i stedet for at tilføje til det), så commandfile skal angive alt, hvad der er nødvendigt for at beskrive outputfilen. Hvis scriptfilen findes ikke i den nuværende mappe, "ld" søger det i de mapper, der er angivet af et hvilket som helst foregående-L muligheder. Mange-T optioner akkumulere. -u symbol --undefined = symbol Kraft symbol at indtastes i outputfilen som et udefineret symbol. Hvis du gør dette, kan du for eksempel udløse sammenkobling af ekstra moduler fra standardbiblioteker.-u kan gentages med forskellige valgargumenter for at indtaste yderligere udefinerede symboler. Denne indstilling svarer til "EXTERN" linker script kommandoen. -ur For andet end C ++-programmer svarer denne mulighed til-r: det genererer flyttbare output --- dvs. en uddatafil, der igen kan tjene som input tilld. Når du forbinder C ++-programmer,-ur gør Løs referencer til konstruktører, i modsætning til-r. Det virker ikke at bruge-ur på filer, der var selv forbundet med-ur; Når konstruktørbordet er blevet bygget, kan det ikke føjes til. Brug-ur kun for det sidste delvise link, og-r for de andre. --unique = AFSNIT Opretter en separat udgangssektion for hver indgangssektion, der matcher AFSNIT , eller hvis det valgfrie jokertegn AFSNIT Manglende argument mangler for hver forældreløs indgangssektion. Et forældreløst afsnit er et ikke specifikt nævnt i et linker script. Du kan bruge denne mulighed flere gange på kommandolinjen; Det forhindrer den normale sammenlægning af input sektioner med samme navn, overordnede output sektion opgaver i et linker script. -v --version -V Vis versionsnummeret tilld. Det-V Option indeholder også de understøttede emuleringer. -x --discard-all Slet alle lokale symboler. -X --discard-lokale Slet alle midlertidige lokale symboler. For de fleste mål er dette alle lokale symboler, hvis navne begynder medL. -y symbol --trace-symbol = symbol Udskriv navnet på hver linket fil, hvor symbol kommer til syne. Denne mulighed kan gives et hvilket som helst antal gange. På mange systemer er det nødvendigt at forudbestille en understregning. Denne mulighed er nyttig, når du har et udefineret symbol i dit link, men ved ikke, hvor referencen kommer fra. -Y sti Tilføje sti til standardbibliotekets søgevej. Denne mulighed findes for Solaris-kompatibilitet. -z søgeord De anerkendte søgeord er "initfirst", "interpose", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodump", "now", "origin", "combreloc", "nocombreloc" og "nocopyreloc ". De andre søgeord ignoreres for Solaris-kompatibilitet. "initfirst" markerer objektet, der skal initialiseres først ved kørselstid før andre objekter."interpose" markerer det objekt, som dets symboltabel interponerer før alle symboler, men den primære eksekverbare. "loadfltr" markerer objektet, at dets filtees behandles straks ved runtime. "nodefaultlib" markerer det objekt, at søgningen efter afhængigheder af dette objekt vil ignorere alle standardbibliotekets søgeveje. "nodelete" markerer objektet bør ikke aflæses ved kørsel. "nodlopen" markerer objektet ikke tilgængeligt for "dlopen". "nodump" markerer objektet kan ikke dumpes med "dldump". "nu" markerer objektet med den ikke-dovne runtime-binding. "Oprindelse" markerer objektet kan indeholde $ ORIGIN. "defs" tillader udefinerede symboler. "muldefs" tillader flere definitioner. "combreloc" kombinerer flere reloc sections og sorterer dem for at gøre dynamisk symbol lookup caching muligt. "nocombreloc" deaktiverer flere relæsektioner, der kombineres. "nocopyreloc" deaktiverer produktion af kopi relocs. -( arkiv -) --start-gruppe arkiv --end-gruppe Det arkiv bør være en liste over arkivfiler. De kan være enten eksplicitte filnavne eller-lmuligheder. De angivne arkiver søges gentagne gange, indtil der ikke oprettes nye undefined referencer. Normalt søges et arkiv kun en gang i den rækkefølge, den er angivet på kommandolinjen. Hvis et symbol i det arkiv er nødvendigt for at løse et undefined symbol, der henvises til af et objekt i et arkiv, der vises senere på kommandolinjen, ville linkeren ikke kunne løse denne reference. Ved at gruppere arkiverne, søges de alle gentagne gange, indtil alle mulige referencer er løst. Brug af denne mulighed har en betydelig ydelsesomkostning. Det er bedst at bruge det kun, når der er uundgåelige cirkulære referencer mellem to eller flere arkiver. --accept-unknown-input-arch --no-accept-ukendt-input-arch Fortæller linkeren at acceptere inputfiler, hvis arkitektur ikke kan genkendes. Forudsætningen er, at brugeren ved, hvad de laver og bevidst ønsker at linke i disse ukendte inputfiler. Dette var standardadfærden for linkeren, før udgivelsen 2.14. Standardadfærden fra udgivelse 2.14 og fremefter er at afvise sådanne inputfiler, og så--accept-unknown-input-arch mulighed er blevet tilføjet for at gendanne den gamle adfærd. -hævde søgeord Denne mulighed ignoreres for SunOS-kompatibilitet. -Bdynamic -D y -call_shared Link til dynamiske biblioteker. Dette er kun meningsfuldt på platforme, for hvilke delte biblioteker understøttes. Denne indstilling er normalt standard på sådanne platforme. De forskellige varianter af denne indstilling er for kompatibilitet med forskellige systemer. Du kan bruge denne mulighed flere gange på kommandolinjen: det påvirker bibliotekets søgning efter-l muligheder, der følger det. -Bgroup Angiv "DF_1_GROUP" -flagget i "DT_FLAGS_1" -posten i det dynamiske afsnit. Dette får runtime linkeren til at håndtere opslag i dette objekt og dets afhængigheder, der kun skal udføres inden for gruppen.--no-undefined er underforstået. Denne mulighed er kun meningsfuld på ELF-platforme, der understøtter delte biblioteker. -Bstatic -dn -non_shared -static Link ikke til delte biblioteker. Dette er kun meningsfuldt på platforme, for hvilke delte biblioteker understøttes. De forskellige varianter af denne indstilling er for kompatibilitet med forskellige systemer. Du kan bruge denne mulighed flere gange på kommandolinjen: det påvirker bibliotekets søgning efter-l muligheder, der følger det. -Bsymbolic Når du opretter et delt bibliotek, binder du referencer til globale symboler til definitionen i det fælles bibliotek, hvis der er nogen. Normalt er det muligt for et program linket til et delt bibliotek for at tilsidesætte definitionen i det delte bibliotek. Denne mulighed er kun meningsfuld på ELFplatforms, der understøtter delte biblioteker. --check-sektioner --no-check-sektioner Beder linkeren ikke at kontrollere sektion adresser efter at de er blevet tildelt for at se om der overlapper hinanden. Normalt vil linkeren udføre denne check, og hvis den finder overlapninger, vil den frembringe passende fejlmeddelelser. Linkeren kender til, og gør godtgørelser for sektioner i overlejringer. Standardadfærden kan gendannes ved hjælp af kommandolinjebrytaren--check-sektioner. --cref Udfør en krydshenvisningstabel. Hvis der genereres en linker-kortfil, skrives krydsreferenstabellen til kortfilen. Ellers er det trykt på standard output. Formatet på bordet er med vilje simpelt, så det let kan behandles af et script, hvis det er nødvendigt. Symbolerne udskrives, sorteret efter navn. For hvert symbol er en liste over filnavne givet. Hvis symbolet er defineret, er den første fil, der er angivet, placeringen af definitionen. De resterende filer indeholder henvisninger til symbolet. --no-definere-common Denne indstilling hæmmer tildelingen af adresser til almindelige symboler. Skriftkommandoen "INHIBIT_COMMON_ALLOCATION" har samme effekt. Det--no-definere-common mulighed gør det muligt at afkoble beslutningen om at tildele adresser til Fælles symboler fra valget af output filtype; ellers kræves en ikke-relokatabel udgangstype, der tildeler adresser til fælles symboler. Ved brug af--no-definere-common tillader fælles symboler, der refereres fra et delt bibliotek, der kun skal tildeles adresser i hovedprogrammet. Dette eliminerer det ubrugte dobbelte rum i det delte bibliotek og forhindrer også enhver mulig forvirring i forbindelse med opløsning til den forkerte duplikat, når der er mange dynamiske moduler med specialiserede søgeveje til runtime-symbolopløsning. --defsym symbol = ekspression Opret et globalt symbol i outputfilen, der indeholder den absolutte adresse givet af ekspression . Du kan bruge denne mulighed så mange gange som nødvendigt for at definere flere symboler i kommandolinjen. En begrænset form for aritmetik understøttes af ekspression i denne sammenhæng: Du kan give en hexadecimal konstant eller navnet på et eksisterende symbol eller bruge "+" og "-" til at tilføje eller subtrahere hexadecimale konstanter eller symboler. Hvis du har brug for mere uddybende udtryk, overvej at bruge linker kommandosproget fra et script. Bemærk: Der skal ikke være noget hvidt mellemrum mellem symbol , ligestegnet (``=''), og ekspression . --demangle = stil --no-demangle Disse valgmuligheder styrer, om du vil demangle symbolnavne i fejlmeddelelser og anden udgang. Når linkeren bliver bedt om at dæmpe, forsøger den at præsentere symbolnavne på læselig vis: den strimler førende understregninger, hvis de bruges af objektfilformatet og konverterer C ++ mangler symbolnavne til brugerlæsbare navne. Forskellige kompilatorer har forskellige manglende stilarter. Det valgfrie demangling stil argument kan bruges til at vælge en passende demangling stil til din compiler. Linkeren vil demangle som standard, medmindre miljøvariablenCOLLECT_NO_DEMANGLE er indstillet. Disse indstillinger kan bruges til at tilsidesætte standardværdien. --dynamic-linker fil Angiv navnet på den dynamiske linker. Dette er kun meningsfuldt, når der genereres dynamisk forbundne ELF-eksekverbare filer. Standard dynamisk linker er normalt korrekt; brug ikke dette, medmindre du ved hvad du laver. --embedded-relocs Denne indstilling er kun meningsfuld, når du forbinder MIPS-indlejret PIC-kode, genereret af indstillingen -membedded-pic til GNU-kompilatoren og assembleren. Det får linkeren til at oprette en tabel, der kan bruges ved kørsel til at flytte alle data, der blev statisk initialiseret til pegerværdier. Se koden i testsuite / ld-empic for detaljer. --fatal-advarsler Behandle alle advarsler som fejl. --force-exe-suffiks Sørg for, at en outputfil har et .exe-suffiks. Hvis en vellykket bygget sammenhængende outputfil ikke har et suffix ".exe" eller ".dll", tvinger denne indstilling linkeren til at kopiere outputfilen til et af samme navn med et ".exe" suffiks. Denne indstilling er nyttig, når du bruger uændrede Unix makefiles på en Microsoft Windows-vært, da nogle versioner af Windows ikke kører et billede, medmindre det slutter i et ".exe" -sukses. --no-gc-sektioner --gc-sektioner Aktivér skraldopsamling af ubrugte indgangsafsnit. Det ignoreres på mål, der ikke understøtter denne mulighed. Denne indstilling er ikke kompatibel med-r, og det skal heller ikke bruges sammen med dynamisk sammenkobling. Standardadfærden (hvis du ikke udfører denne affaldssamling) kan gendannes ved at angive--no-gc-sektioner på kommandolinjen. --Hjælp Udskriv et resumé af kommandolinjemulighederne på standard output og exit. --target-hjælp Udskriv et resumé af alle målspecifikke valgmuligheder på standard output og exit. -Kort mapFile Udskriv et linkkort til filen mapFile . Se beskrivelsen af-M mulighed ovenfor. --no-keep-hukommelse ld optimerer normalt for hastighed over hukommelsesbrug ved at cache symboltabellerne af inputfiler i hukommelsen. Denne mulighed fortællerld at optimere i stedet for hukommelsesbrug, ved at genlæse symboltabellerne efter behov. Dette kan være nødvendigt, hvisld løber tør for hukommelsespladsen, mens du forbinder en stor eksekverbar. --no-undefined -s døv Normalt, når der oprettes et ikke-symbolsk delt bibliotek, tillades udefinerede symboler og efterlades for at blive løst af runtime loader. Disse indstillinger tillader sådanne udefinerede symboler. --allow-multiple-definition -z muldefs Normalt når et symbol er defineret flere gange, rapporterer linkeren en fatal fejl. Disse indstillinger tillader flere definitioner, og den første definition bliver brugt. --allow-shlib-undefined Tillad udefinerede symboler i delte objekter, selv når - ikke-defineret er angivet. Nettoresultatet vil være, at udefinerede symboler i almindelige objekter stadig vil udløse en fejl, men udefinerede symboler i delte objekter vil blive ignoreret. Gennemførelsen af no_undefined gør antagelsen om, at runtime linkeren vil kvælge på udefinerede symboler. Der er dog mindst et system (BeOS), hvor udefinerede symboler i delte biblioteker er normale, da kernen patcherer dem ved belastningstid for at vælge, hvilken funktion der er mest passende for den nuværende arkitektur. DVS. Vælg dynamisk en passende memset-funktion. Det er tilsyneladende normalt, at HPPA-delte biblioteker har udefinerede symboler. --no-undefined-versionen Normalt når et symbol har en udefineret version, ignorerer linkeren det. Denne indstilling udelukker symboler med udefineret version, og der vil blive udstedt en fatal fejl i stedet. --no-warn-mismatch Normaltld vil give en fejl, hvis du forsøger at sammenkæde input filer, der er uoverensstemmende af en eller anden grund, måske fordi de er blevet sammensat til forskellige processorer eller til forskellige endianheder. Denne mulighed fortællerld at det tydeligt bør tillade sådanne mulige fejl. Denne mulighed bør kun bruges med omhu i tilfælde, hvor du har taget nogle specielle handlinger, der sikrer, at linkerfejlene er upassende. --no-hel-arkiv Sluk for effekten af--whole-arkiv mulighed for efterfølgende arkivfiler. --noinhibit-exec Behold den eksekverbare outputfil, når den stadig kan bruges.Normalt producerer linkeren ikke en outputfil, hvis den oplever fejl under linkprocessen. den afslutter uden at skrive en outputfil, når den udsteder nogen fejl overhovedet. -nostdlib Søg kun biblioteksmapper, der er udtrykkeligt angivet på kommandolinjen. Bibliotekskataloger, der er angivet i linker-script (herunder linker-script, der er angivet på kommandolinjen) ignoreres. --oformat output-format ld kan konfigureres til at understøtte mere end en slags objektfil. Hvis dinld er konfigureret på denne måde, kan du bruge--oformat mulighed for at angive det binære format for output objektfilen. Selv nårld er konfigureret til at understøtte alternative objektformater, behøver du normalt ikke at angive dette, somld bør konfigureres til at producere som det normale outputformat det mest almindelige format på hver maskine. output-format er en tekststreng, navnet på et bestemt format understøttet af BFD-biblioteker. (Du kan liste de tilgængelige binære formater medobjdump -i.) Skriptkommandoen "OUTPUT_FORMAT" kan også angive outputformatet, men denne indstilling overstyrer den. -qmagic Denne mulighed ignoreres for Linux-kompatibilitet. -Qy Denne mulighed ignoreres for SVR4-kompatibilitet. --slap af En mulighed med maskinafhængige effekter. Denne indstilling støttes kun på få mål. På nogle platforme er--slap af mulighed udfører globale optimeringer, der bliver mulige, når linkeren løser adressering i programmet, såsom afslappende adressemetoder og syntetisering af nye instruktioner i outputobjektfilen. På nogle platforme kan disse globale optimeringer i linketid muliggøre symbolsk fejlfinding af den resulterende eksekverbare. Dette vides at være tilfældet for Matsushita MN10200 og MN10300 familie af processorer. På platforme, hvor dette ikke understøttes,--slap af accepteres, men ignoreres. --retain-symboler-fil filnavn Beholde kun de symboler, der er angivet i filen filnavn , kassere alle andre. filnavn er simpelthen en flad fil med et symbolnavn pr. linje. Denne indstilling er særlig nyttig i miljøer (f.eks. VxWorks), hvor et stort globalt symboltabell akkumuleres gradvist for at spare tid for driftstid. --retain-symboler-fil gør ikke kassere udefinerede symboler eller symboler, der er nødvendige til flytninger. Du må kun angive--retain-symboler-fil en gang i kommandolinjen. Det tilsidesætter-s og-S. -rpath dir Tilføj en mappe til søgningstiden til runtime biblioteket. Dette bruges til at forbinde en ELFexecutable med delte objekter. Alle-rpath argumenter er sammenkædede og videreført til runtime linker, der bruger dem til at finde delte objekter på runtime. Det-rpath Alternativ bruges også til at finde delte objekter, som er nødvendige af delte objekter, der er udtrykkeligt inkluderet i linket; se beskrivelsen af-rpath-link mulighed. Hvis-rpath bruges ikke, når der kobles en ELF eksekverbar, vil indholdet af miljøvariablen "LD_RUN_PATH" blive brugt, hvis det er defineret. Det-rpath Muligheden kan også bruges på SunOS. Som standard vil linkeren på SunOS danne et runtime search patch ud af alle de-L indstillinger det er givet. Hvis en-rpath valgmulighed er brugt, vil runtime søgevejen udelukkende blive dannet ved hjælp af-rpath muligheder, ignorerer-Lmuligheder. Dette kan være nyttigt, når du bruger gcc, som tilføjer mange-L indstillinger, der kan være onNFS-monterede filsystemer. For kompatibilitet med andre ELF linkere, hvis-R valgmulighed efterfølges af et katalognavn, snarere end et filnavn, det behandles som-rpath mulighed. -rpath-link DIR Når du bruger ELF eller SunOS, kan et fælles bibliotek kræve en anden. Dette sker, når et "ld-delt" link indeholder et delt bibliotek som en af inputfilerne. Når linkeren oplever en sådan afhængighed, når han laver et ikke-delt, ikke-flyttbart link, vil det automatisk forsøge at finde det nødvendige delte bibliotek og inkludere det i linket, hvis det ikke udtrykkeligt er medtaget. I et sådant tilfælde-rpath-link indstilling angiver det første sæt af mapper, der skal søges. Det-rpath-link mulighed kan angive en sekvens af katalognavne enten ved at angive en liste over navne adskilt af kolonner eller ved at vises flere gange. Denne valgmulighed bør bruges med forsigtighed, da den tilsidesætter søgningen, der måske har været kompileret i et delt bibliotek. I et sådant tilfælde er det muligt at bruge utilsigtet en anden søgevej end runtime linkeren ville gøre. Linker bruger følgende søgeveje til at finde de nødvendige delte biblioteker. 1. Eventuelle mapper specificeret af-rpath-link muligheder. 2. Eventuelle mapper specificeret af-rpath muligheder. Forskellen på-rpath og-rpath-link er de mapper, der er specificeret af-rpath indstillinger er inkluderet i den eksekverbare og bruges i løbetid, mens-rpath-link indstillingen er kun effektiv ved linketid. Det er kun for den oprindelige linker. 3. På et ELF-system, hvis-rpath og "rpath-link" -optioner blev ikke brugt, søg indholdet af miljøvariablen "LD_RUN_PATH". Det er kun for den oprindelige linker. 4. På SunOS, hvis-rpath indstillingen blev ikke brugt, søg nogen mapper angivet med-L muligheder. 5. For en native linker, indholdet af miljøvariablen "LD_LIBRARY_PATH". 6. For en indbygget ELF-linker søges katalogerne i "DT_RUNPATH" eller "DT_RPATH" i et delt bibliotek for de delte biblioteker, der er nødvendige af den.Posterne "DT_RPATH" ignoreres, hvis der findes "DT_RUNPATH" -poster. 7. Standardmapper, normalt / lib og / Usr / lib . 8. For en indbygget linker på et ELF-system, hvis filen /etc/ld.so.conf findes, listen over mapper, der findes i den pågældende fil. Hvis det krævede delte bibliotek ikke findes, udsender linkeren en advarsel og fortsætter med linket. -delt -Bshareable Opret et delt bibliotek. Dette understøttes i øjeblikket kun på ELF-, XCOFF- og SunOS-platforme. På SunOS oprettes linkeren automatisk et delt bibliotek, hvis-e valgmulighed er ikke brugt, og der er udefinerede symboler i linket. --sort-common Denne mulighed fortællerld at sortere de fælles symboler efter størrelse, når de placeres i de relevante output sektioner. Først kommer alle de ene byte symboler, så alle de to byte, så alle de fire byte, og så alt andet. Dette er for at forhindre huller mellem symboler på grund af justeringsbegrænsninger. --split-by-file størrelse Svarende til--split-by-reloc men skaber en ny output sektion for hver input fil når størrelse nås. størrelse standard til en størrelse på 1 hvis ikke givet. --split-by-reloc tælle Forsøger at oprette ekstra sektioner i outputfilen, så ingen enkelt udgangssektion i filen indeholder mere end tælle flytninger. Dette er nyttigt, når der genereres store relokatable filer til download i bestemte real-time kerner med COFF objektfilformatet; da COFFcannot repræsenterer mere end 65535 flytninger i et enkelt afsnit. Bemærk, at dette ikke fungerer med objektfilformater, der ikke understøtter vilkårlige sektioner. Linkeren vil ikke opdele individuelle indgangssektioner til omfordeling, så hvis en enkelt indgangssektion indeholder mere end tælle flytninger en udgangssektion vil indeholde så mange flytninger. tælle standard til en værdi på 32768. --stats Beregn og vis statistikker om driften af linkeren, som eksekveringstid og hukommelsesforbrug. --traditional-format For nogle mål, output afld er forskellig på nogle måder fra output af nogle eksisterende linker. Denne switch anmodningerld at bruge det traditionelle format i stedet. For eksempel på SunOS,ld kombinerer dubletter i symbolstrengetabellen. Dette kan reducere størrelsen af en outputfil med fuld fejlfindingsinformation med over 30 procent. Desværre kan SunOS "dbx" -programmet ikke læse det resulterende program ("gdb" har ingen problemer). Det--traditional-format afbryder fortællerld at ikke kombinere dubletter. --section-start sectionname = org Find en sektion i outputfilen på den absolutte adresse, der er givet af org . Du kan bruge denne mulighed så mange gange som nødvendigt for at finde flere sektioner i kommandolinjen. org skal være et enkelt hexadecimalt heltal For kompatibilitet med andre linkere kan du udelade den førende0x normalt forbundet med hexadecimale værdier. Bemærk: Der skal ikke være noget hvidt mellemrum mellem sectionname , ligestegnet (``=''), og org . -Tbss org -Tdata org -Ttext org Brug org som startadresse for --- henholdsvis --- "bss", "data" eller "tekst" -segmentet i outputfilen. org skal være et enkelt hexadecimalt heltal For kompatibilitet med andre linkere kan du udelade den førende0x normalt forbundet med hexadecimale værdier. --dll-verbose --ordrig Vis versionsnummeret tilld og list de linkeremuleringer, der understøttes. Vis hvilke indgangsfiler der kan og ikke kan åbnes. Vis linker scriptet, der bruges af linkeren. --version-script = versionen-scriptfilen Angiv navnet på et versionsskript til linkeren. Dette bruges typisk til oprettelse af delte biblioteker for at angive yderligere oplysninger om versionshovedarkivet for det bibliotek, der oprettes. Denne mulighed er kun meningsfuld på ELF-platforme, der understøtter delte biblioteker. --warn-common Advar når et fælles symbol kombineres med et andet fælles symbol eller med en symboldefinition. Unix linkers tillader dette noget sjusket øvelse, men linkere på nogle andre operativsystemer gør det ikke. Denne mulighed giver dig mulighed for at finde potentielle problemer ved at kombinere globale symboler. Desværre bruger nogle C-biblioteker denne praksis, så du kan få nogle advarsler om symboler i bibliotekerne såvel som i dine programmer. Der er tre slags globale symboler, illustreret her med C-eksempler: int i = 1; En definition, der går i det initialiserede datafsnit af outputfilen. ekstern int i; En udefineret reference, som ikke allokerer plads. Der skal enten være en definition eller et fælles symbol for variablen et sted. int jeg; Et fælles symbol. Hvis der kun er (et eller flere) fælles symboler for en variabel, går det i det uinitialiserede datafelt af outputfilen. Linker fusionerer flere fælles symboler for den samme variabel i et enkelt symbol. Hvis de har forskellige størrelser, vælger den den største størrelse. Linkeren skifter et fælles symbol til en erklæring, hvis der er en definition af den samme variabel. Det--warn-common mulighed kan producere fem slags advarsler. Hver advarsel består af et par linjer: Den første beskriver symbolet, der lige er stødt på, og det andet beskriver det tidligere symbol, der er stødt på samme navn. Et eller begge af de to symboler vil være et almindeligt symbol. 1. Drejer et fælles symbol til en reference, fordi der allerede er en definition for symbolet. (): Advarsel: Almindelig af `"tilsidesættes pr. definition (): advarsel: defineret her2. Drejer et fælles symbol til en reference, fordi der findes en senere definition af symbolet. Dette er det samme som det foregående tilfælde, bortset fra at symbolerne ses i en anden rækkefølge. (): advarsel: definition af `'overordnede fælles (): advarsel: fælles er her3. Sammenlægning af et fælles symbol med et tidligere fælles størrelse fælles symbol. (): advarsel: flere almindelige af `' (): advarsel: tidligere fælles er her4. Fusionere et fælles symbol med et tidligere større fælles symbol. (): Advarsel: Almindelig af `'overskredet af større fælles (): advarsel: større fælles er her5. Fusionere et fælles symbol med et tidligere mindre fælles symbol. Dette er det samme som det foregående tilfælde, bortset fra at symbolerne ses i en anden rækkefølge. (): Advarsel: Almindelig af `'tvingende mindre fælles (): advarsel: mindre almindelig er her--warn-konstruktører Advar om nogen globale konstruktorer anvendes. Dette er kun nyttigt for et par objektfilformater. For formater som COFF eller ELF kan linkeren ikke registrere brugen af globale konstruktører. --warn-multiple-gp Advar om der kræves flere globale pegerværdier i outputfilen. Dette er kun meningsfuldt for visse processorer, såsom Alpha. Specifikt sætter nogle processorer store værdiansatte konstanter i en speciel sektion. Et særligt register (den globale pointer) peger ind i midten af dette afsnit, så konstanter kan indlæses effektivt via en base-register relativ adresseringstilstand. Da forskydningen i basisregister-relativ tilstand er fast og forholdsvis lille (fx 16 bits), begrænser dette maksimumsstørrelsen af den konstante pulje. I store programmer er det således ofte nødvendigt at bruge flere globale pointerværdier for at kunne adressere alle mulige konstanter. Denne mulighed giver en advarsel udstedes, når denne sag opstår. --warn-once Advarsel kun én gang for hvert udefineret symbol, snarere end en gang pr. Modul, der refererer til det. --warn-sektion-align Advar hvis adressen på en udgangssektion ændres på grund af justering. Normalt indstilles justeringen af en indgangssektion. Adressen ændres kun, hvis den ikke udtrykkeligt angives; det vil sige, hvis kommandoen "SECTIONS" ikke angiver en startadresse for sektionen. --whole-arkiv For hvert arkiv nævnt på kommandolinjen efter--whole-arkiv valgmulighed, inklusiv hver objektfil i arkivet i linket, snarere end at søge i arkivet for de ønskede objektfiler. Dette bruges normalt til at slå en arkivfil til et delt bibliotek, hvilket tvinger hvert objekt til at blive inkluderet i det resulterende delte bibliotek. Denne mulighed kan bruges mere end én gang. To noter, når du bruger denne indstilling fra gcc: For det første kender gcc ikke til denne indstilling, så du skal bruge-Wl, -whole-arkiv. For det andet, glem ikke at bruge-Wl, -no-hel-arkivefter din liste over arkiver, fordi gcc vil tilføje sin egen liste over arkiver til dit link, og du kan ikke have, at dette flag også påvirker dem. --wrap symbol Brug en wrapper funktion til symbol . Enhver ubestemt henvisning til symbol vil blive løst til "__ wrap_symbol". Enhver udefineret reference til "__real_symbol" vil blive løst til symbol . Dette kan bruges til at give et omslag til en systemfunktion. Indpakningsfunktionen skal kaldes "__wrap_symbol". Hvis den ønsker at ringe til systemfunktionen, skal den kalde "__ real_symbol". Her er et trivielt eksempel: void * __wrap_malloc (int c) {printf ("malloc kaldet med% ld n", c); returnere __real_malloc (c); }Hvis du linker anden kode med denne fil ved hjælp af- wrap malloc, så kalder alle opkald til "malloc" funktionen "__wrap_malloc" i stedet. Opkaldet til "__real_malloc" i "__wrap_malloc" kalder den rigtige "malloc" -funktion. Du kan også ønske at levere en "__real_malloc" funktion, så det forbinder uden--wrap mulighed vil lykkes. Hvis du gør dette, bør du ikke sætte definitionen af "__ real_malloc" i samme fil som "__wrap_malloc"; hvis du gør det, kan montøren løse opkaldet før linkeren har mulighed for at pakke det til "malloc". --enable-nye-dtags --disable-nye-dtags Denne linker kan oprette de nye dynamiske tags i ELF. Men de ældre ELF-systemer kan måske ikke forstå dem. Hvis du angiver--enable-nye-dtags, vil de dynamiske tags oprettes efter behov. Hvis du angiver--disable-nye-dtags, der oprettes ingen nye dynamiske tags. Som standard oprettes de nye dynamiske tags ikke. Bemærk, at disse muligheder kun er tilgængelige for ELF-systemer. I386 PE linkeren understøtter-delt mulighed, hvilket får output til at være et dynamisk forbundet bibliotek (DLL) i stedet for en normal eksekverbar. Du skal navngive output "* .dll", når du bruger denne indstilling. Derudover understøtter linkeren fuldt ud standard "* .def" -filerne, som kan angives på kommandolinjen linker som en objektfil (faktisk skal den gå forud for arkiver, der eksporterer symboler fra, for at sikre, at de bliver linket ind, ligesom en normal objektfil). Ud over de muligheder, der er fælles for alle mål, understøtter i386 PE linkeren yderligere kommandolinjeindstillinger, der er specifikke for i386 PE-målet. Valg, der tager værdier, kan adskilles fra deres værdier ved enten et mellemrum eller et ligestillet. --add-stdcall-alias Hvis givet, symboler med stdcall suffix (@ nn ) vil blive eksporteret som-er og også med suffikset strippet. --base-fil fil Brug fil som navnet på en fil, hvor du skal gemme basisadresserne for alle de flytninger, der er nødvendige for at generere DLL'er med dlltool . --dll Opret en DLL i stedet for en regelmæssig eksekverbar. Du kan også bruge-delt eller angiv et "BIBLIOTEK" i en given ".def" -fil. --enable-stdcall-fixup --disable-stdcall-fixup Hvis linket finder et symbol, som det ikke kan løse, vil det forsøge at gøre `` fuzzy linking '' ved at lede efter et andet defineret symbol, der kun adskiller sig i formatet af symbolnavnet (cdecl vs stdcall) og vil løse dette symbol ved at forbinde til kampen. For eksempel kan det ikke definerede symbol "_foo" være knyttet til funktionen "_foo @ 12", eller det udefinerede symbol "_bar @ 16" kan være knyttet til funktionen "_bar". Når linkeren gør det, udskriver den en advarsel, da det normalt ikke burde være linket, men det kan være nødvendigt at importere biblioteker, der genereres fra tredjepartsdlls, til denne funktion. Hvis du angiver--enable-stdcall-fixup, denne funktion er fuldt aktiveret og advarsler udskrives ikke. Hvis du angiver--disable-stdcall-fixup, er denne funktion deaktiveret, og sådanne fejlmuligheder anses for at være fejl. --export-alle-symboler Hvis det er givet, eksporteres alle globale symboler i de objekter, der bruges til at opbygge en DLL, til DLL'en. Bemærk, at dette er standard, hvis der ellers ikke ville være nogen eksporterede symboler. Når sym