IngleseFranceseTedescoItalianoPortogheseRussianSpagnolo

Favicon di OnWorks

mips64el-linux-gnuabi64-ld.bfd - Online nel cloud

Esegui mips64el-linux-gnuabi64-ld.bfd nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando mips64el-linux-gnuabi64-ld.bfd che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


ld - Il linker GNU

SINOSSI


ld [Opzioni] objfile ...

DESCRIZIONE


ld combina un numero di oggetti e file di archivio, riposiziona i loro dati e lega il simbolo
Riferimenti. Di solito l'ultimo passaggio nella compilazione di un programma è eseguirlo ld.

ld accetta i file Linker Command Language scritti in un superset di Link Editor di AT&T
Sintassi del linguaggio di comando, per fornire un controllo esplicito e totale sul processo di collegamento.

Questa pagina man non descrive il linguaggio dei comandi; vedere il ld entrata in "info" per intero
dettagli sul linguaggio di comando e su altri aspetti del linker GNU.

Questa versione di ld utilizza le librerie BFD di uso generale per operare su file oggetto. Questo
consente ld per leggere, combinare e scrivere file oggetto in molti formati diversi --- per
esempio, COFF o "a.out". Diversi formati possono essere collegati tra loro per produrre qualsiasi
tipo di file oggetto disponibile.

A parte la sua flessibilità, il linker GNU è più utile di altri linker nel fornire
informazioni diagnostiche. Molti linker abbandonano l'esecuzione immediatamente dopo aver incontrato un
errore; quando possibile, ld continua l'esecuzione, consentendo di identificare altri errori
(o, in alcuni casi, per ottenere un file di output nonostante l'errore).

Il linker GNU ld è pensato per coprire una vasta gamma di situazioni e per essere il più compatibile
possibile con altri linker. Di conseguenza, hai molte scelte per controllarlo
comportamento.

VERSIONI


Il linker supporta una pletora di opzioni da riga di comando, ma in pratica poche di esse
vengono utilizzati in un contesto particolare. Ad esempio, un uso frequente di ld è quello di collegare
file oggetto Unix standard su un sistema Unix standard supportato. Su un tale sistema, a
collega un file "ciao.o":

Io faccio /lib/crt0.o ciao.o -lc

Questo dice ld per produrre un file chiamato produzione come risultato del collegamento del file
"/lib/crt0.o" con "hello.o" e la libreria "libc.a", che verrà dallo standard
directory di ricerca. (Vedi la discussione del -l opzione di seguito.)

Alcune delle opzioni della riga di comando per ld può essere specificato in qualsiasi punto della riga di comando.
Tuttavia, le opzioni che fanno riferimento ai file, come ad esempio -l or -T, fa in modo che il file venga letto al
punto in cui appare l'opzione nella riga di comando, relativa ai file oggetto e
altre opzioni di file. La ripetizione di opzioni non di file con un argomento diverso avrà
nessun ulteriore effetto, o sovrascrivere le occorrenze precedenti (quelle più a sinistra sul comando
riga) di tale opzione. Le opzioni che possono essere specificate in modo significativo più di una volta sono
annotato nelle descrizioni sottostanti.

Gli argomenti non di opzione sono file oggetto o archivi che devono essere collegati tra loro. Essi
può seguire, precedere o essere mescolato con le opzioni della riga di comando, eccetto che un file oggetto
l'argomento non può essere posto tra un'opzione e il suo argomento.

Di solito il linker viene invocato con almeno un file oggetto, ma puoi specificarne altri
forme di file di input binari usando -l, -Re il linguaggio di comando degli script. Se no binario
i file di input sono specificati, il linker non produce alcun output ed emette il
messaggio Non ingresso file.

Se il linker non è in grado di riconoscere il formato di un file oggetto, assumerà che sia un
script del linker. Uno script specificato in questo modo aumenta lo script del linker principale utilizzato per
il collegamento (o lo script del linker predefinito o quello specificato usando -T). Questo
caratteristica consente al linker di collegarsi a un file che sembra essere un oggetto o un
archivio, ma in realtà definisce semplicemente alcuni valori di simboli, o usa "INPUT" o "GROUP" per
caricare altri oggetti. Specificare uno script in questo modo aumenta semplicemente il linker principale
script, con i comandi extra posti dopo lo script principale; utilizzare il -T possibilità di sostituzione
completamente lo script del linker predefinito, ma si noti l'effetto del comando "INSERT".

Per le opzioni i cui nomi sono una singola lettera, gli argomenti dell'opzione devono seguire il
lettera di opzione senza spazi vuoti, o essere data come argomenti separati
immediatamente dopo l'opzione che li richiede.

Per le opzioni i cui nomi sono più lettere, uno o due trattini possono precedere il
nome dell'opzione; Per esempio, -traccia-simbolo che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana --traccia-simbolo sono equivalenti. Nota --- lì
è un'eccezione a questa regola. Opzioni di lettere multiple che iniziano con una "o" minuscola
può essere preceduto solo da due trattini. Questo per ridurre la confusione con il -o opzione. Così
per esempio -magica imposta il nome del file di output su magia mentre --magica imposta il NMAGIC
flag in uscita.

Gli argomenti per le opzioni di più lettere devono essere separati dal nome dell'opzione da a
segno di uguale o essere dati come argomenti separati immediatamente dopo l'opzione che
li richiede. Per esempio, --traccia-simbolo foo che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana --trace-simbolo=pippo sono equivalenti.
Sono accettate abbreviazioni univoche dei nomi delle opzioni a più lettere.

Nota---se il linker viene invocato indirettamente, tramite un driver del compilatore (es gcc) poi
tutte le opzioni della riga di comando del linker dovrebbero essere precedute da -Wl, (o qualunque cosa sia appropriata
per il particolare driver del compilatore) in questo modo:

gcc -Wl,--start-group foo.o bar.o -Wl,--end-group

Questo è importante, perché altrimenti il ​​programma del driver del compilatore potrebbe rilasciare silenziosamente il file
opzioni del linker, risultando in un collegamento errato. Può sorgere confusione anche quando si passano opzioni
che richiedono valori tramite un driver, come l'uso di uno spazio tra opzione e argomento
funge da separatore e fa sì che il driver passi solo l'opzione al linker e al
argomento al compilatore. In questo caso, è più semplice utilizzare le forme unite di entrambi
opzioni a una o più lettere, come:

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

Ecco una tabella delle opzioni generiche della riga di comando accettate dal linker GNU:

@filetto
Leggi le opzioni della riga di comando da filetto. Le opzioni lette vengono inserite al posto di
originale @filetto opzione. Se filetto non esiste o non può essere letto, allora l'opzione
saranno trattati letteralmente e non rimossi.

opzioni in filetto sono separati da spazi bianchi. Può essere incluso un carattere di spazio bianco
in un'opzione racchiudendo l'intera opzione tra virgolette singole o doppie. Qualunque
carattere (inclusa una barra rovesciata) può essere incluso anteponendo il carattere a essere
incluso con una barra rovesciata. Il filetto può contenere a sua volta @ aggiuntivifiletto opzioni; qualunque
tali opzioni verranno elaborate in modo ricorsivo.

-a parola chiave
Questa opzione è supportata per la compatibilità HP/UX. Il parola chiave l'argomento deve essere uno di
le corde archiviare, condiviso, o difetto. -aarchivio è funzionalmente equivalente a
-Bstatico, e le altre due parole chiave sono funzionalmente equivalenti a -Bdinamica. Questo
l'opzione può essere utilizzata un numero illimitato di volte.

--verifica AUDITLIB
Aggiunge AUDITLIB alla voce "DT_AUDIT" della sezione dinamica. AUDITLIB non è selezionato
per l'esistenza, né utilizzerà il DT_SONAME specificato nella libreria. Se specificato
più volte "DT_AUDIT" conterrà un elenco separato da due punti di interfacce di controllo per
utilizzo. Se il linker trova un oggetto con una voce di controllo durante la ricerca di shared
librerie, aggiungerà una voce "DT_DEPAUDIT" corrispondente nel file di output. Questo
L'opzione è significativa solo su piattaforme ELF che supportano l'interfaccia rtld-audit.

-A architettura
--architettura=architettura
Nell'attuale versione di ld, questa opzione è utile solo per la famiglia Intel 960 di
architetture. In ciò ld configurazione, il architettura argomento identifica il
particolare architettura della famiglia 960, consentendo alcune salvaguardie e modificando il
percorso di ricerca archivio-libreria.

Le prossime versioni di ld può supportare funzionalità simili per altre architetture
famiglie.

-b formato di input
--formato=formato di input
ld può essere configurato per supportare più di un tipo di file oggetto. Se tuo ld is
configurato in questo modo, è possibile utilizzare il -b opzione per specificare il formato binario per l'input
file oggetto che seguono questa opzione sulla riga di comando. Anche quando ld è configurato
per supportare formati di oggetti alternativi, di solito non è necessario specificarlo, in quanto ld
dovrebbe essere configurato per aspettarsi come formato di input predefinito il formato più comune su ciascuno
macchina. formato di input è una stringa di testo, il nome di un particolare formato supportato da
le librerie BFD. (Puoi elencare i formati binari disponibili con objdump -i.)

Potresti voler usare questa opzione se stai collegando file con un binario insolito
formato. Puoi anche usare -b per cambiare formato in modo esplicito (quando si collegano file oggetto
di diversi formati), includendo -b formato di input prima di ogni gruppo di file oggetto
in un formato particolare.

Il formato predefinito è preso dalla variabile d'ambiente "GNUTARGET".

Puoi anche definire il formato di input da uno script, usando il comando "TARGET";

-c File di comando MRI
--mri-script=File di comando MRI
Per la compatibilità con i linker prodotti dalla risonanza magnetica, ld accetta file di script scritti in an
linguaggio di comando alternativo e limitato, descritto nei file di script compatibili con MRI
sezione della documentazione di GNU ld. Introduci i file di script MRI con l'opzione -c; uso
le -T opzione per eseguire script di linker scritti in general-purpose ld Scripting
linguaggio. Se File cmd MRI non esiste, ld lo cerca nelle directory specificate
da nessuno -L opzioni.

-d
-cc
-dp Queste tre opzioni sono equivalenti; più moduli sono supportati per la compatibilità
con altri linker. Assegnano spazio a simboli comuni anche se un output rilocabile
file è specificato (con -r). Il comando di script "FORCE_COMMON_ALLOCATION" ha il
stesso effetto.

--depaudit AUDITLIB
-P AUDITLIB
Aggiunge AUDITLIB alla voce "DT_DEPAUDIT" della sezione dinamica. AUDITLIB non è
verificata l'esistenza, né utilizzerà il DT_SONAME specificato nella libreria. Se
specificato più volte "DT_DEPAUDIT" conterrà un elenco di audit separato da due punti
interfacce da utilizzare. Questa opzione è significativa solo sulle piattaforme ELF che supportano il
interfaccia rtld-audit. L'opzione -P è fornita per la compatibilità con Solaris.

-e iscrizione
--voce=iscrizione
Utilizza iscrizione come simbolo esplicito per iniziare l'esecuzione del programma, piuttosto che
il punto di ingresso predefinito. Se non ci sono simboli nominati iscrizione, il linker proverà a
parse iscrizione come numero e usalo come indirizzo di ingresso (il numero sarà
interpretato in base 10; puoi usare un leader 0x per la base 16, o un leader 0 per base
8).

--exclude-libs lib,lib, ...
Specifica un elenco di librerie di archivio da cui i simboli non dovrebbero essere automaticamente
esportato. I nomi delle librerie possono essere delimitati da virgole o due punti. Specificando
"--exclude-libs ALL" esclude i simboli in tutte le librerie di archivio dall'esportazione automatica.
Questa opzione è disponibile solo per la porta target i386 PE del linker e per ELF
porti mirati. Per i386 PE, i simboli elencati esplicitamente in un file .def sono ancora
esportato, indipendentemente da questa opzione. Per i porti presi di mira ELF, simboli interessati da questo
l'opzione verrà considerata nascosta.

--exclude-modules-for-implib modulo,modulo, ...
Specifica un elenco di file oggetto o membri di archivio, da cui i simboli non dovrebbero essere
esportato automaticamente, ma che dovrebbe essere copiato all'ingrosso nella libreria di importazione
generato durante il collegamento. I nomi dei moduli possono essere delimitati da virgole o
due punti e deve corrispondere esattamente ai nomi dei file utilizzati da ld per aprire i file; per archivio
membri, questo è semplicemente il nome del membro, ma per i file oggetto il nome elencato deve
includere e abbinare esattamente qualsiasi percorso utilizzato per specificare il file di input sul linker
riga di comando. Questa opzione è disponibile solo per la porta di destinazione i386 PE del
linker. I simboli elencati esplicitamente in un file .def vengono ancora esportati, indipendentemente da
questa opzione

-E
--export-dinamica
--no-export-dynamic
Quando si crea un eseguibile collegato dinamicamente, utilizzando il pulsante -E opzione o il
--export-dinamica opzione fa sì che il linker aggiunga tutti i simboli al simbolo dinamico
tavolo. La tabella dei simboli dinamici è l'insieme dei simboli che sono visibili da dynamic
oggetti in fase di esecuzione.

Se non usi nessuna di queste opzioni (o usi il --no-export-dynamic opzione a
ripristinare il comportamento predefinito), la tabella dei simboli dinamici normalmente conterrà solo
quei simboli a cui fa riferimento qualche oggetto dinamico menzionato nel collegamento.

Se usi "dlopen" per caricare un oggetto dinamico che deve fare riferimento ai simboli
definito dal programma, piuttosto che qualche altro oggetto dinamico, allora probabilmente lo farai
necessario utilizzare questa opzione quando si collega il programma stesso.

Puoi anche usare l'elenco dinamico per controllare quali simboli devono essere aggiunti al
tabella dei simboli dinamica se il formato di output lo supporta. Vedi la descrizione di
--lista-dinamica.

Nota che questa opzione è specifica per le porte di destinazione ELF. Gli obiettivi PE supportano un simile
funzione per esportare tutti i simboli da una DLL o EXE; vedere la descrizione di
--export-all-symbols sotto.

-EB Collega oggetti big-endian. Ciò influisce sul formato di output predefinito.

-EL Collega oggetti little-endian. Ciò influisce sul formato di output predefinito.

-f Nome
--ausiliario=Nome
Quando si crea un oggetto condiviso ELF, impostare il campo interno DT_AUXILIARY su
nome specificato. Questo dice al linker dinamico che la tabella dei simboli di shared
l'oggetto dovrebbe essere usato come filtro ausiliario nella tabella dei simboli dell'oggetto condiviso
Nome.

Se in seguito si collega un programma a questo oggetto filtro, quando si esegue il
programma, il linker dinamico vedrà il campo DT_AUXILIARY. Se il linker dinamico
risolve qualsiasi simbolo dall'oggetto filtro, controllerà prima se c'è un
definizione nell'oggetto condiviso Nome. Se ce n'è uno, verrà utilizzato al posto di
definizione nell'oggetto filtro. L'oggetto condiviso Nome non deve esistere. Così il
oggetto condiviso Nome può essere utilizzato per fornire un'implementazione alternativa di certi
funzioni, forse per il debug o per prestazioni specifiche della macchina.

Questa opzione può essere specificata più di una volta. Verranno create le voci DT_AUXILIARY
nell'ordine in cui appaiono sulla riga di comando.

-F Nome
--filtro=Nome
Quando si crea un oggetto condiviso ELF, impostare il campo DT_FILTER interno sul valore specificato
nome. Questo dice al linker dinamico che la tabella dei simboli dell'oggetto condiviso che
viene creato dovrebbe essere usato come filtro sulla tabella dei simboli dell'oggetto condiviso
Nome.

Se in seguito si collega un programma a questo oggetto filtro, quando si esegue il
programma, il linker dinamico vedrà il campo DT_FILTER. Il linker dinamico lo farà
risolvere i simboli in base alla tabella dei simboli dell'oggetto filtro come al solito, ma
si collegherà effettivamente alle definizioni trovate nell'oggetto condiviso Nome. Quindi il
l'oggetto filtro può essere utilizzato per selezionare un sottoinsieme dei simboli forniti dall'oggetto
Nome.

Alcuni linker più vecchi usavano il -F opzione in una toolchain di compilazione per
specificando il formato del file oggetto sia per i file oggetto di input che di output. Il linker GNU
utilizza altri meccanismi per questo scopo: il -b, --formato, --oformat opzioni, il
Comando "TARGET" negli script del linker e la variabile d'ambiente "GNUTARGET". Il GNU
il linker ignorerà il -F opzione quando non si crea un oggetto condiviso ELF.

-fini=Nome
Quando si crea un eseguibile ELF o un oggetto condiviso, chiamare NAME quando l'eseguibile o
l'oggetto condiviso viene scaricato, impostando DT_FINI all'indirizzo della funzione. Di
di default, il linker usa "_fini" come funzione da chiamare.

-g Ignorato. Previsto per compatibilità con altri strumenti.

-G APPREZZIAMO
--gpsize=APPREZZIAMO
Imposta la dimensione massima degli oggetti da ottimizzare utilizzando il registro GP su Taglia. Questo
è significativo solo per i formati di file oggetto come MIPS ELF che supportano il posizionamento di grandi dimensioni
e piccoli oggetti in diverse sezioni. Questo viene ignorato per altri file oggetto
formati.

-h Nome
-nome=Nome
Quando si crea un oggetto condiviso ELF, impostare il campo DT_SONAME interno su specificato
nome. Quando un eseguibile è collegato a un oggetto condiviso che ha un campo DT_SONAME,
quindi quando l'eseguibile viene eseguito il linker dinamico tenterà di caricare lo shared
oggetto specificato dal campo DT_SONAME invece di utilizzare il nome del file dato a
il linker.

-i Esegui un collegamento incrementale (uguale all'opzione -r).

-inizializzazione=Nome
Quando si crea un eseguibile ELF o un oggetto condiviso, chiamare NAME quando l'eseguibile o
viene caricato l'oggetto condiviso, impostando DT_INIT all'indirizzo della funzione. Di
predefinito, il linker usa "_init" come funzione da chiamare.

-l specifica del nome
--libreria=specifica del nome
Aggiungi l'archivio o il file oggetto specificato da specifica del nome all'elenco dei file da collegare.
Questa opzione può essere utilizzata un numero illimitato di volte. Se specifica del nome è della forma :nome del file, ld
cercherà nel percorso della libreria un file chiamato Nome del file, altrimenti cercherà il
percorso della libreria per un file chiamato libnamespec.a.

Sui sistemi che supportano le librerie condivise, ld può anche cercare file diversi da
libnamespec.a. Nello specifico, sui sistemi ELF e SunOS, ld cercherà una directory per
una biblioteca chiamata libnamespec.so prima di cercarne uno chiamato libnamespec.a. (Di
convenzione, un'estensione ".so" indica una libreria condivisa.) Nota che questo comportamento
non si applica a :nome del file, che specifica sempre un file chiamato Nome del file.

Il linker cercherà un archivio solo una volta, nella posizione in cui è specificato su
la riga di comando. Se l'archivio definisce un simbolo che non era definito in qualche oggetto
che è apparso prima dell'archivio sulla riga di comando, il linker includerà il
file appropriati dall'archivio. Tuttavia, un simbolo indefinito in un oggetto
apparire in seguito sulla riga di comando non farà sì che il linker cerchi nell'archivio
nuovamente.

Vedere la -( opzione per un modo per forzare il linker a cercare gli archivi più volte.

Puoi elencare lo stesso archivio più volte sulla riga di comando.

Questo tipo di ricerca nell'archivio è standard per i linker Unix. Tuttavia, se lo sei
utilizzando ld su AIX, si noti che è diverso dal comportamento del linker AIX.

-L ricerca dir
--percorso-libreria=ricerca dir
Aggiungi percorso ricerca dir alla lista dei percorsi che ld cercherà biblioteche archivio e
ld script di controllo. Puoi usare questa opzione un numero qualsiasi di volte. Le directory sono
ricercati nell'ordine in cui sono specificati nella riga di comando. Directory
specificati sulla riga di comando vengono cercati prima delle directory predefinite. Tutto -L
le opzioni si applicano a tutti -l opzioni, indipendentemente dall'ordine in cui vengono visualizzate le opzioni.
-L le opzioni non influiscono su come ld cerca uno script linker a meno che -T opzione è
specificato.

If ricerca dir inizia con "=", quindi "=" sarà sostituito da sysroot prefisso,
controllato da --sysroot opzione o specificato quando il linker è configurato.

L'insieme predefinito di percorsi cercati (senza essere specificato con -L) dipende da quale
modalità di emulazione ld sta utilizzando, e in alcuni casi anche su come è stato configurato.

I percorsi possono essere specificati anche in uno script di collegamento con il comando "SEARCH_DIR".
Le directory specificate in questo modo vengono cercate nel punto in cui lo script del linker
appare nella riga di comando.

-m emulazione
Emula il emulazione linker. Puoi elencare le emulazioni disponibili con il
--verboso or -V opzioni.

Se l' -m l'opzione non è utilizzata, l'emulazione è presa dalla "LDEMULAZIONE"
variabile di ambiente, se definita.

In caso contrario, l'emulazione predefinita dipende da come è stato configurato il linker.

-M
--print-mappa
Stampa una mappa di collegamento allo standard output. Una mappa dei collegamenti fornisce informazioni sul
collegamento, tra cui:

· Dove i file oggetto sono mappati in memoria.

· Come vengono assegnati i simboli comuni.

· Tutti i membri dell'archivio inclusi nel collegamento, con una menzione del simbolo che
ha fatto entrare il membro dell'archivio.

· I valori assegnati ai simboli.

Nota - simboli i cui valori sono calcolati da un'espressione che coinvolge a
il riferimento a un valore precedente dello stesso simbolo potrebbe non avere un risultato corretto
visualizzato nella mappa dei collegamenti. Questo perché il linker scarta l'intermedio
risultati e conserva solo il valore finale di un'espressione. sotto tale
circostanze il linker visualizzerà il valore finale racchiuso tra parentesi quadre.
Così ad esempio uno script linker contenente:

pippo = 1
pippo = pippo * 4
pippo = pippo + 8

produrrà il seguente output nella mappa dei collegamenti se il -M viene utilizzata l'opzione:

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

Andate a Espressioni per ulteriori informazioni sulle espressioni negli script del linker.

-n
--nmagic
Disattiva l'allineamento della pagina delle sezioni e disabilita il collegamento alle librerie condivise. Se
il formato di output supporta i numeri magici in stile Unix, contrassegna l'output come "NMAGIC".

-N
--magica
Imposta le sezioni di testo e dati in modo che siano leggibili e scrivibili. Inoltre, non allineare le pagine
il segmento di dati e disabilitare il collegamento alle librerie condivise. Se il formato di output
supporta i numeri magici in stile Unix, contrassegna l'output come "OMAGIC". Nota: sebbene a
la sezione di testo scrivibile è consentita per i target PE-COFF, non è conforme al
specifica di formato pubblicata da Microsoft.

--no-magic
Questa opzione annulla la maggior parte degli effetti del -N opzione. Imposta la sezione di testo su
essere di sola lettura e forza l'allineamento della pagina al segmento di dati. Nota: questa opzione funziona
non abilitare il collegamento alle librerie condivise. Utilizzo -Bdinamica per questo.

-o produzione
--output=produzione
Utilizza produzione come il nome del programma prodotto da ld; se questa opzione non lo è
specificato, il nome a. fuori viene utilizzato per impostazione predefinita. Anche il comando di script "OUTPUT" può
specificare il nome del file di output.

-O livello
If livello è un valore numerico maggiore di zero ld ottimizza l'output. Questo potrebbe
impiegare molto più tempo e quindi probabilmente dovrebbe essere abilitato solo per la finale
binario. Al momento questa opzione riguarda solo la generazione della libreria condivisa ELF. Futuro
le versioni del linker possono utilizzare maggiormente questa opzione. Inoltre attualmente non c'è
differenza nel comportamento del linker per diversi valori diversi da zero di questa opzione.
Anche in questo caso questo potrebbe cambiare con le versioni future.

--push-state
Il --push-state permette di preservare lo stato attuale delle bandiere che governano il
gestione dei file di input in modo che possano essere ripristinati tutti con uno corrispondente
--pop-state opzione.

Le opzioni coperte sono: -Bdinamica, -Bstatico, -dn, -dy, -chiamata_condivisa,
-non_condiviso, -statico, -N, -n, --intero-archivio, --no-intero-archivio, -r, -Ur,
--copy-dt-voci-necessarie, --no-copy-dt-voci-necessarie, --come necessario, --non-quando-necessario,
che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana -a.

Un obiettivo per questa opzione sono le specifiche per pkg-config. Se utilizzato con il
--libs opzione tutte le librerie eventualmente necessarie sono elencate e quindi eventualmente collegate con
tutto il tempo. È meglio restituire qualcosa come segue:

-Wl,--push-state,--come-necessario -libone -libtwo -Wl,--pop-state

Annulla l'effetto di --push-state, ripristina i valori precedenti dei flag che governano
gestione dei file di input.

-q
--emit-relocs
Lascia sezioni e contenuti di rilocazione in eseguibili completamente collegati. Pubblica link
gli strumenti di analisi e ottimizzazione potrebbero aver bisogno di queste informazioni per eseguire correttamente
modifiche degli eseguibili. Ciò si traduce in eseguibili più grandi.

Questa opzione è attualmente supportata solo su piattaforme ELF.

--forza-dinamica
Forza il file di output ad avere sezioni dinamiche. Questa opzione è specifica per VxWorks
obiettivi.

-r
--rilocabile
Genera output rilocabile, ovvero genera un file di output che può a sua volta fungere da
input a ld. Questo è spesso chiamato parziale collegamento. Come effetto collaterale, negli ambienti
che supportano i numeri magici standard di Unix, questa opzione imposta anche i file di output
numero magico a "OMAGIC". Se questa opzione non è specificata, un file assoluto è
prodotto. Quando si collegano programmi C++, questa opzione volere non risolvere i riferimenti a
costruttori; per farlo, usa -Ur.

Quando un file di input non ha lo stesso formato del file di output, collegamento parziale
è supportato solo se quel file di input non contiene rilocazioni. Diverso
i formati di output possono avere ulteriori restrizioni; per esempio alcuni formati basati su "a.out"
non supportano affatto il collegamento parziale con file di input in altri formati.

Questa opzione fa la stessa cosa di -i.

-R Nome del file
--solo-simboli=Nome del file
Leggi i nomi dei simboli e i loro indirizzi da Nome del file, ma non spostarlo o includerlo
esso in uscita. Ciò consente al file di output di fare riferimento simbolicamente a assoluto
locazioni di memoria definite in altri programmi. Puoi usare questa opzione più di
una volta.

Per compatibilità con altri linker ELF, se il -R l'opzione è seguita da una directory
nome, piuttosto che un nome di file, viene trattato come il -rpercorso opzione.

-s
--striscia-tutto
Ometti tutte le informazioni sui simboli dal file di output.

-S
--strip-debug
Ometti le informazioni sui simboli del debugger (ma non tutti i simboli) dal file di output.

-t
--traccia
Stampa i nomi dei file di input come ld li elabora.

-T file script
--script=file script
Utilizza file script come script del linker. Questo script sostituisce ldlo script del linker predefinito
(piuttosto che aggiungerlo), quindi file di comando deve specificare tutto il necessario per
descrivere il file di output. Se file script non esiste nella directory corrente,
"ld" lo cerca nelle directory specificate da qualsiasi precedente -L opzioni. multiplo
-T le opzioni si accumulano.

-dt file script
--default-script=file script
Utilizza file script come script del linker predefinito.

Questa opzione è simile alla - script opzione tranne che l'elaborazione dello script è
ritardato fino all'elaborazione del resto della riga di comando. Questo permette
opzioni poste dopo il --script-default opzione sulla riga di comando per influenzare il
comportamento dello script del linker, che può essere importante quando la riga di comando del linker
non possono essere controllati direttamente dall'utente. (ad esempio perché la riga di comando è in corso
costruito da un altro strumento, come gcc).

-u simbolo
--non definito=simbolo
forza simbolo da inserire nel file di output come simbolo indefinito. Fare questo può,
ad esempio, attivare il collegamento di moduli aggiuntivi da librerie standard. -u può essere
ripetuto con diversi argomenti di opzione per inserire ulteriori simboli non definiti. Questo
è equivalente al comando di script del linker "EXTERN".

Se questa opzione viene utilizzata per forzare l'inserimento di moduli aggiuntivi nel collegamento,
e se è un errore che il simbolo rimanga indefinito, allora l'opzione
--require-definito dovrebbe essere usato invece.

--require-defined=simbolo
Richiedi che simbolo è definito nel file di output. Questa opzione è la stessa dell'opzione
--non definito tranne che se simbolo non è definito nel file di output quindi il linker
emetterà un errore e uscirà. Lo stesso effetto può essere ottenuto in uno script linker da
utilizzando "EXTERN", "ASSERT" e "DEFINED" insieme. Questa opzione può essere utilizzata più volte
volte per richiedere simboli aggiuntivi.

-Ur Per qualsiasi cosa diversa dai programmi C++, questa opzione è equivalente a -r: genera
output rilocabile --- cioè un file di output che può a sua volta fungere da input per ld. Quando
collegamento di programmi C++, -Ur effettua risolvere i riferimenti ai costruttori, a differenza di -r. Lo fa
non funziona da usare -Ur su file che erano essi stessi collegati con -Ur; una volta che il
la tabella del costruttore è stata creata, non può essere aggiunta a. Utilizzo -Ur solo per l'ultimo
collegamento parziale, e -r per gli altri.

--gestione-orfana=MODE
Controlla come vengono gestite le sezioni orfane. Una sezione orfana è una non specificatamente
menzionato in uno script del linker.

MODE può assumere uno dei seguenti valori:

"luogo"
Le sezioni orfane vengono inserite in una sezione di output adatta seguendo la strategia
descritto in Orfano sezioni. L'opzione --unico influisce anche su come sono le sezioni
posto.

"scartare"
Tutte le sezioni orfane vengono scartate, inserendole nella /SCARTARE/ .

"avvisare"
Il linker posizionerà la sezione orfana come per "luogo" e invierà anche un avviso.

"errore"
Il linker verrà chiuso con un errore se viene trovata una sezione orfana.

L'impostazione predefinita se --gestione-orfani non è dato è "luogo".

--unico[=SEZIONE]
Crea una sezione di output separata per ogni corrispondenza della sezione di input SEZIONEo se il file
carattere jolly opzionale SEZIONE l'argomento è mancante, per ogni sezione di input orfana. Un
la sezione orfana non è specificatamente menzionata in uno script del linker. Puoi usare questo
opzione più volte sulla riga di comando; Impedisce la normale fusione degli input
sezioni con lo stesso nome, sovrascrivendo le assegnazioni delle sezioni di output in uno script del linker.

-v
--versione
-V Visualizza il numero di versione per ld. -V L'opzione elenca anche le emulazioni supportate.

-x
--scarta-tutto
Elimina tutti i simboli locali.

-X
--discard-locals
Elimina tutti i simboli locali temporanei. (Questi simboli iniziano con local specifico del sistema
prefissi di etichetta, in genere .L per sistemi ELF o L per i tradizionali sistemi a.out.)

-y simbolo
--trace-simbolo=simbolo
Stampa il nome di ogni file collegato in cui simbolo appare. Questa opzione può essere data
un numero qualsiasi di volte. Su molti sistemi è necessario anteporre un carattere di sottolineatura.

Questa opzione è utile quando hai un simbolo indefinito nel tuo link ma non lo sai
da dove proviene il riferimento.

-Y sentiero
Aggiungi sentiero al percorso di ricerca della libreria predefinito. Questa opzione esiste per Solaris
la compatibilità.

-z parola chiave
Le parole chiave riconosciute sono:

combreloc
Combina più sezioni di riposizionamento e le ordina per creare una ricerca di simboli dinamica
possibile la memorizzazione nella cache.

def
Non consente simboli non definiti nei file oggetto. Simboli non definiti in condivisi
le biblioteche sono ancora consentite.

execstack
Contrassegna l'oggetto come richiede lo stack eseguibile.

globale
Questa opzione è significativa solo quando si costruisce un oggetto condiviso. fa il
simboli definiti da questo oggetto condiviso disponibili per la risoluzione dei simboli di
librerie caricate successivamente.

initfirst
Questa opzione è significativa solo quando si costruisce un oggetto condiviso. Segna l'oggetto
in modo che la sua inizializzazione di runtime avvenga prima dell'inizializzazione di runtime di
qualsiasi altro oggetto introdotto nel processo allo stesso tempo. Allo stesso modo il
la finalizzazione runtime dell'oggetto avverrà dopo la finalizzazione runtime di
qualsiasi altro oggetto.

interporre
Contrassegna l'oggetto che la sua tabella dei simboli interpone prima di tutti i simboli tranne il
eseguibile primario.

pigro
Quando si genera un eseguibile o una libreria condivisa, contrassegnarlo per indicare la dinamica
linker per rinviare la risoluzione delle chiamate di funzione al punto in cui viene chiamata la funzione
(rilegatura pigra), piuttosto che al momento del caricamento. L'associazione pigra è l'impostazione predefinita.

loadfltr
Contrassegna l'oggetto che i relativi filtri verranno elaborati immediatamente in fase di esecuzione.

muffe
Consente più definizioni.

nocombreloc
Disabilita la combinazione di più sezioni di rilocazione.

nocopyrelc
Disabilita le variabili .dynbss generate dal linker utilizzate al posto delle variabili definite in
biblioteche condivise. Può comportare il trasferimento dinamico del testo.

nodefaultlib
Segna l'oggetto che la ricerca delle dipendenze di questo oggetto ignorerà qualsiasi
percorsi di ricerca della libreria predefiniti.

nodoso
Segna che l'oggetto non deve essere scaricato in fase di esecuzione.

nodlopen
Contrassegna l'oggetto come non disponibile per "dlopen".

nodump
Segna che l'oggetto non può essere scaricato da "dldump".

noexecstack
Contrassegna l'oggetto come non richiede stack eseguibile.

testo
Considera DT_TEXTREL nell'oggetto condiviso come errore.

nessun testo
Non trattare DT_TEXTREL nell'oggetto condiviso come errore.

sms
Non trattare DT_TEXTREL nell'oggetto condiviso come errore.

norelro
Non creare un'intestazione di segmento ELF "PT_GNU_RELRO" nell'oggetto.

adesso Quando si genera un eseguibile o una libreria condivisa, contrassegnarlo per indicare la dinamica
linker per risolvere tutti i simboli all'avvio del programma, o quando lo shared
la libreria è collegata all'uso di dlopen, invece di posticipare la risoluzione delle chiamate di funzione
al punto in cui la funzione viene chiamata per la prima volta.

origine
Contrassegna che l'oggetto può contenere $ORIGIN.

relro
Crea un'intestazione di segmento ELF "PT_GNU_RELRO" nell'oggetto.

dimensione-max-pagina=APPREZZIAMO
Imposta la dimensione massima della pagina dell'emulazione su APPREZZIAMO.

dimensione-pagina-comune=APPREZZIAMO
Imposta la dimensione della pagina comune di emulazione su APPREZZIAMO.

dimensione della pila=APPREZZIAMO
Specificare una dimensione dello stack per un segmento ELF "PT_GNU_STACK". Specificando zero will
sovrascrivere qualsiasi creazione di segmento "PT_GNU_STACK" predefinita di dimensioni diverse da zero.

bndplt
Genera sempre il prefisso BND nelle voci PLT. Supportato per Linux/x86_64.

dati-protetti-noextern
Non trattare il simbolo dei dati protetti come esterno durante la creazione di una libreria condivisa. Questo
l'opzione sovrascrive il valore predefinito del backend del linker. Può essere usato per risolvere il problema in modo errato
rilocazioni contro simboli di dati protetti generati dal compilatore. Aggiornamenti su
i simboli di dati protetti da un altro modulo non sono visibili alla condivisione risultante
biblioteca. Supportato per i386 e x86-64.

call-nop=prefisso-addr
call-nop=prefisso-nop
call-nop=suffisso-nop
call-nop=prefisso-byte
call-nop=suffisso-byte
Specificare il riempimento "NOP" a 1 byte quando si trasforma una chiamata indiretta in locale
funzione definita, foo, tramite il suo slot GOT. call-nop=prefisso-addr genera "0x67
chiama pippo". call-nop=prefisso-nop genera "0x90 call foo". call-nop=suffisso-nop
genera "call foo 0x90". call-nop=prefisso-byte genera"byte chiamata pippo".
call-nop=suffisso-byte genera "chiama foo byte". Supportato per i386 e x86_64.

Altre parole chiave vengono ignorate per la compatibilità con Solaris.

-( archivio -)
--start-gruppo archivio --end-group
Il archivio dovrebbe essere un elenco di file di archivio. Possono essere file espliciti
nomi, o -l opzioni.

Gli archivi specificati vengono cercati ripetutamente fino a quando non vengono trovati nuovi riferimenti non definiti
creato. Normalmente, un archivio viene cercato solo una volta nell'ordine in cui è specificato
sulla riga di comando. Se è necessario un simbolo in quell'archivio per risolvere un indefinito
simbolo a cui fa riferimento un oggetto in un archivio che appare in seguito sulla riga di comando,
il linker non sarebbe in grado di risolvere quel riferimento. Raggruppando gli archivi,
vengono tutti cercati ripetutamente fino a quando non vengono risolti tutti i possibili riferimenti.

L'utilizzo di questa opzione ha un costo significativo in termini di prestazioni. È meglio usarlo solo quando
vi sono inevitabili riferimenti circolari tra due o più archivi.

--accetta-input-sconosciuto-arch
--no-accettare-input-sconosciuto-arch
Dice al linker di accettare file di input la cui architettura non può essere riconosciuta. Il
il presupposto è che l'utente sappia cosa sta facendo e voglia deliberatamente collegarsi
in questi file di input sconosciuti. Questo era il comportamento predefinito del linker, prima
versione 2.14. Il comportamento predefinito dalla versione 2.14 in poi è rifiutare tale input
file, e quindi il --accetta-input-sconosciuto-arch è stata aggiunta l'opzione per ripristinare il vecchio
comportamento.

--come necessario
--non-quando-necessario
Questa opzione ha effetto sui tag ELF DT_NEEDED per le librerie dinamiche menzionate nel comando
riga dopo il --come necessario opzione. Normalmente il linker aggiungerà un tag DT_NEEDED per
ogni libreria dinamica menzionata sulla riga di comando, indipendentemente dal fatto che la libreria
è effettivamente necessario o meno. --come necessario fa sì che un tag DT_NEEDED venga emesso solo per
una libreria che at che punto in le collegamento soddisfa un simbolo indefinito non debole
riferimento da un normale file oggetto o, se la libreria non si trova nel DT_NEEDED
elenchi di altre librerie necessarie, un riferimento a simboli indefinito non debole da un altro
libreria dinamica necessaria. File oggetto o librerie che appaiono sulla riga di comando dopo
la libreria in questione non influisce sul fatto che la libreria sia vista come necessaria. Questo è
simile alle regole per l'estrazione dei file oggetto dagli archivi. --non-quando-necessario
ripristina il comportamento predefinito.

--aggiungi-necessario
--non-aggiungere-necessario
Queste due opzioni sono state deprecate a causa della somiglianza dei loro nomi con il
--come necessario che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana --non-quando-necessario opzioni. Sono stati sostituiti da
--copy-dt-voci-necessarie che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana --no-copy-dt-voci-necessarie.

-affermare parola chiave
Questa opzione viene ignorata per la compatibilità con SunOS.

-Bdinamica
-dy
-chiamata_condivisa
Collegamento a librerie dinamiche. Questo è significativo solo su piattaforme per le quali è condiviso
le librerie sono supportate. Questa opzione è normalmente l'impostazione predefinita su tali piattaforme. Il
diverse varianti di questa opzione sono per la compatibilità con vari sistemi. Potresti
usa questa opzione più volte sulla riga di comando: influisce sulla ricerca della libreria per
-l opzioni che lo seguono.

-Bgruppo
Impostare il flag "DF_1_GROUP" nella voce "DT_FLAGS_1" nella sezione dinamica. Questo
fa in modo che il linker di runtime gestisca le ricerche in questo oggetto e le sue dipendenze
eseguita solo all'interno del gruppo. --unresolved-symbols=report-all è implicito. Questo
L'opzione è significativa solo su piattaforme ELF che supportano librerie condivise.

-Bstatico
-dn
-non_condiviso
-statico
Non collegare a librerie condivise. Questo è significativo solo su piattaforme per le quali
le librerie condivise sono supportate. Le diverse varianti di questa opzione sono per
compatibilità con vari sistemi. Puoi usare questa opzione più volte sul
riga di comando: influisce sulla ricerca della libreria per -l opzioni che lo seguono. Questo
l'opzione implica anche --unresolved-symbols=report-all. Questa opzione può essere utilizzata con
-condiviso. Ciò significa che viene creata una libreria condivisa ma che tutte le
i riferimenti esterni della libreria devono essere risolti inserendo le voci da static
librerie.

-Bsimbolico
Quando si crea una libreria condivisa, associare i riferimenti ai simboli globali alla definizione
all'interno della libreria condivisa, se presente. Normalmente, è possibile per un programma collegato
su una libreria condivisa per sovrascrivere la definizione all'interno della libreria condivisa. Questo
l'opzione può essere utilizzata anche con --export-dinamica opzione, quando si crea una posizione
eseguibile indipendente, per legare i riferimenti ai simboli globali alla definizione all'interno
l'eseguibile. Questa opzione è significativa solo su piattaforme ELF che supportano shared
librerie ed eseguibili indipendenti dalla posizione.

-Bfunzioni-simboliche
Quando si crea una libreria condivisa, associare i riferimenti ai simboli delle funzioni globali al
definizione all'interno della libreria condivisa, se presente. Questa opzione può essere utilizzata anche con il
--export-dinamica opzione, quando si crea un eseguibile indipendente dalla posizione, per associare
riferimenti a simboli di funzioni globali alla definizione all'interno dell'eseguibile. Questo
l'opzione è significativa solo su piattaforme ELF che supportano librerie e posizioni condivise
eseguibili indipendenti.

--lista-dinamica=file-elenco-dinamico
Specificare il nome di un file di elenco dinamico nel linker. Questo è tipicamente usato quando
creare librerie condivise per specificare un elenco di simboli globali i cui riferimenti
non dovrebbe essere vincolato alla definizione all'interno della libreria condivisa, o creazione
eseguibili collegati dinamicamente per specificare un elenco di simboli che dovrebbero essere aggiunti a
la tabella dei simboli nell'eseguibile. Questa opzione è significativa solo su piattaforme ELF
che supportano le librerie condivise.

Il formato dell'elenco dinamico è lo stesso del nodo della versione senza ambito e nodo
nome. Vedere VERSIONE per maggiori informazioni.

--data-lista-dinamica
Includere tutti i simboli di dati globali nell'elenco dinamico.

--dynamic-list-cpp-new
Fornire l'elenco dinamico integrato per l'operatore C++ new ed delete. È principalmente utile
per la creazione di libstdc++ condiviso.

--dynamic-list-cpp-typeinfo
Fornire l'elenco dinamico integrato per l'identificazione del tipo di runtime C++.

--controlla-sezioni
--no-check-sezioni
chiede il linker non per controllare gli indirizzi delle sezioni dopo che sono stati assegnati per vedere se
ci sono sovrapposizioni. Normalmente il linker eseguirà questo controllo, e se lo trova
eventuali sovrapposizioni produrranno opportuni messaggi di errore. Il linker lo sa, e
tiene conto delle sezioni nelle sovrapposizioni. Il comportamento predefinito può essere ripristinato
utilizzando l'opzione della riga di comando --controlla-sezioni. La sovrapposizione delle sezioni non è di solito
controllato per i collegamenti rilocabili. Puoi forzare il controllo in quel caso usando il
--controlla-sezioni opzione.

--copy-dt-voci-necessarie
--no-copy-dt-voci-necessarie
Questa opzione influisce sul trattamento delle librerie dinamiche a cui fanno riferimento i tag DT_NEEDED
interno Librerie dinamiche ELF menzionate nella riga di comando. Normalmente il linker non lo farà
aggiungi un tag DT_NEEDED al binario di output per ogni libreria menzionata in un tag DT_NEEDED
in una libreria dinamica di input. Insieme a --copy-dt-voci-necessarie specificato sul comando
line tuttavia tutte le librerie dinamiche che la seguono avranno le loro voci DT_NEEDED
aggiunto. Il comportamento predefinito può essere ripristinato con --no-copy-dt-voci-necessarie.

Questa opzione ha effetto anche sulla risoluzione dei simboli nelle librerie dinamiche.
Con una lunga --copy-dt-voci-necessarie le librerie dinamiche menzionate nella riga di comando saranno
cercato in modo ricorsivo, seguendo i loro tag DT_NEEDED in altre librerie, al fine di
risolvere i simboli richiesti dal binario di output. Con l'impostazione predefinita tuttavia il
la ricerca delle librerie dinamiche che seguono si fermerà con la libreria dinamica
si. Nessun collegamento DT_NEEDED verrà attraversato per risolvere i simboli.

--cref
Genera una tabella di riferimenti incrociati. Se viene generato un file mappa linker, la croce
la tabella di riferimento viene stampata sul file della mappa. Altrimenti, è stampato sullo standard
produzione.

Il formato della tabella è volutamente semplice, in modo che possa essere facilmente elaborato da
uno script se necessario. I simboli vengono stampati, ordinati per nome. Per ogni simbolo,
viene fornito un elenco di nomi di file. Se il simbolo è definito, il primo file elencato è il
posizione della definizione. Se il simbolo è definito come un valore comune, allora qualsiasi file
dove questo accade appare dopo. Infine tutti i file che fanno riferimento al simbolo sono
elencati.

--no-define-comune
Questa opzione inibisce l'assegnazione di indirizzi a simboli comuni. Il copione
il comando "INHIBIT_COMMON_ALLOCATION" ha lo stesso effetto.

Il --no-define-comune opzione consente di disaccoppiare la decisione di assegnare indirizzi a
Simboli comuni dalla scelta del tipo di file di output; altrimenti un non-rilocabile
il tipo di output forza l'assegnazione degli indirizzi ai simboli comuni. Usando --no-define-comune
consente l'assegnazione di simboli comuni a cui si fa riferimento da una libreria condivisa
indirizzi solo nel programma principale. Questo elimina lo spazio duplicato inutilizzato nel
libreria condivisa, e previene anche ogni possibile confusione sulla risoluzione del torto
duplicare quando ci sono molti moduli dinamici con percorsi di ricerca specializzati per
risoluzione dei simboli di runtime.

--defsym=simbolo=espressione
Crea un simbolo globale nel file di output, contenente l'indirizzo assoluto dato da
espressione. Puoi usare questa opzione tutte le volte necessarie per definire più
simboli nella riga di comando. Una forma limitata di aritmetica è supportata per il
espressione in questo contesto: puoi dare una costante esadecimale o il nome di an
simbolo esistente o utilizzare "+" e "-" per aggiungere o sottrarre costanti esadecimali o
simboli. Se hai bisogno di espressioni più elaborate, considera l'utilizzo del comando linker
lingua da uno script. Nota: non ci dovrebbero essere spazi bianchi tra simbolo, le
segno di uguale ("="), e espressione.

--demanle[=stile]
--no-demanle
Queste opzioni controllano se smantellare i nomi dei simboli nei messaggi di errore e altro
produzione. Quando al linker viene detto di smantellare, cerca di presentare i nomi dei simboli in a
modo leggibile: elimina i caratteri di sottolineatura iniziali se utilizzati dal file oggetto
formato e converte i nomi dei simboli alterati in C++ in nomi leggibili dall'utente. Diverso
i compilatori hanno diversi stili di manipolazione. L'argomento facoltativo dello stile di smantellamento può
essere usato per scegliere uno stile di smistamento appropriato per il tuo compilatore. Il linker
demangle per impostazione predefinita a meno che la variabile d'ambiente COLLECT_NO_DEMANGLE è impostato. Queste
le opzioni possono essere utilizzate per sovrascrivere l'impostazione predefinita.

-Ifiletto
--dynamic-linker=filetto
Imposta il nome del linker dinamico. Questo è significativo solo quando si genera
eseguibili ELF collegati dinamicamente. Il linker dinamico predefinito è normalmente corretto;
non usarlo se non sai cosa stai facendo.

--no-dynamic-linker
Quando si produce un file eseguibile, omettere la richiesta di utilizzare un linker dinamico in
tempo di caricamento. Questo è significativo solo per gli eseguibili ELF che contengono dinamiche
trasferimenti e di solito richiede un codice del punto di ingresso in grado di elaborarli
traslochi.

--fatal-avvertimenti
--nessun-avviso-fatale
Considera tutti gli avvisi come errori. Il comportamento predefinito può essere ripristinato con l'opzione
--nessun-avviso-fatale.

--force-exe-suffisso
Assicurati che un file di output abbia un suffisso .exe.

Se un file di output completamente collegato compilato correttamente non ha un ".exe" o ".dll"
suffisso, questa opzione forza il linker a copiare il file di output su uno con lo stesso nome
con un suffisso ".exe". Questa opzione è utile quando si utilizzano makefile Unix non modificati su a
Host Microsoft Windows, poiché alcune versioni di Windows non eseguiranno un'immagine a meno che non sia
termina con un suffisso ".exe".

--gc-sezioni
--no-gc-sezioni
Abilita il Garbage Collection delle sezioni di input non utilizzate. Viene ignorato su obiettivi che lo fanno
non supporta questa opzione. Il comportamento predefinito (di non eseguire questa spazzatura
raccolta) può essere ripristinato specificando --no-gc-sezioni sulla riga di comando. Nota
che la raccolta di rifiuti per i target in formato COFF e PE è supportata, ma il
l'implementazione è attualmente considerata sperimentale.

--gc-sezioni decide quali sezioni di input vengono utilizzate esaminando i simboli e
traslochi. La sezione contenente il simbolo della voce e tutte le sezioni contenenti
i simboli non definiti sulla riga di comando verranno mantenuti, così come le sezioni contenenti
simboli referenziati da oggetti dinamici. Nota che durante la creazione di librerie condivise,
il linker deve presumere che si faccia riferimento a qualsiasi simbolo visibile. Una volta che questa serie iniziale di
sezioni è stata determinata, il linker contrassegna ricorsivamente come utilizzata qualsiasi sezione
referenziati dai loro spostamenti. Vedere --iscrizione che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana --non definito.

Questa opzione può essere impostata quando si esegue un collegamento parziale (abilitato con l'opzione -r). In questo
caso la radice dei simboli mantenuti deve essere esplicitamente specificata da an --iscrizione or
--non definito opzione o da un comando "ENTRY" nello script del linker.

--print-gc-sezioni
--no-print-gc-sezioni
Elenca tutte le sezioni rimosse dalla garbage collection. L'elenco è stampato su stderr.
Questa opzione è efficace solo se la raccolta dei rifiuti è stata abilitata tramite il
--gc-sezioni) opzione. Il comportamento predefinito (di non elencare le sezioni che sono
rimosso) può essere ripristinato specificando --no-print-gc-sezioni sulla riga di comando.

--print-output-formato
Stampa il nome del formato di output predefinito (forse influenzato da un'altra riga di comando
opzioni). Questa è la stringa che apparirebbe in uno script linker "OUTPUT_FORMAT"
comando.

--stampa-utilizzo-memoria
Stampa la dimensione utilizzata, la dimensione totale e la dimensione utilizzata delle aree di memoria create con il MEMORIA
comando. Questo è utile sui target incorporati per avere una rapida visione della quantità di free
memoria. Il formato dell'output ha un titolo e una riga per regione. è
entrambi leggibili dall'uomo e facilmente analizzabili dagli strumenti. Ecco un esempio di output:

Dimensione della regione della memoria Usata Dimensione della regione %età usata
ROM: 256 KB 1 MB 25.00%
RAM: 32 B 2 GB 0.00%

--Aiuto
Stampa un riepilogo delle opzioni della riga di comando sullo standard output ed esci.

--target-help
Stampa un riepilogo di tutte le opzioni specifiche del target sullo standard output ed esci.

-Mappa=mapfile
Stampa una mappa di collegamento al file mapfile. Vedi la descrizione del -M opzione, sopra.

--no-keep-memory
ld normalmente ottimizza per la velocità sull'utilizzo della memoria memorizzando nella cache le tabelle dei simboli di
file di input in memoria. Questa opzione dice ld per ottimizzare invece l'utilizzo della memoria, di
rileggendo le tabelle dei simboli se necessario. Questo può essere richiesto se ld esaurisce
spazio di memoria durante il collegamento di un eseguibile di grandi dimensioni.

--no-indefinito
-z def
Riporta i riferimenti ai simboli non risolti dai normali file oggetto. Questo è fatto anche se
il linker sta creando una libreria condivisa non simbolica. L'interruttore
--[no-]allow-shlib-undefined controlla il comportamento per la segnalazione non risolta
riferimenti trovati nelle librerie condivise in cui sono collegati.

--allow-multipla-definizione
-z muffe
Normalmente quando un simbolo viene definito più volte, il linker riporterà un fatal
errore. Queste opzioni consentono più definizioni e verrà utilizzata la prima definizione.

--allow-shlib-undefined
--no-allow-shlib-undefined
Consente o meno i simboli non definiti nelle librerie condivise. Questo interruttore è simile a
--no-indefinito tranne che determina il comportamento quando i simboli non definiti sono
in una libreria condivisa piuttosto che in un normale file oggetto. Non influisce su come
vengono gestiti i simboli non definiti nei normali file oggetto.

Il comportamento predefinito è quello di segnalare errori per qualsiasi simbolo non definito a cui si fa riferimento in
librerie condivise se il linker viene utilizzato per creare un eseguibile, ma per consentire
li se il linker viene utilizzato per creare una libreria condivisa.

Le ragioni per consentire riferimenti a simboli non definiti nelle librerie condivise specificate in
l'orario del collegamento è questo:

· Una libreria condivisa specificata al momento del collegamento potrebbe non essere la stessa di quella che è
disponibile al momento del caricamento, quindi il simbolo potrebbe essere effettivamente risolvibile al momento del caricamento.

· Ci sono alcuni sistemi operativi, ad esempio BeOS e HPPA, dove i simboli non definiti in
le librerie condivise sono normali.

Il kernel BeOS, ad esempio, aggiorna le librerie condivise al momento del caricamento per selezionarle
qualunque sia la funzione più appropriata per l'architettura corrente. Questo è
utilizzato, ad esempio, per selezionare dinamicamente una funzione memset appropriata.

--no-versione-indefinita
Normalmente quando un simbolo ha una versione indefinita, il linker lo ignorerà. Questo
l'opzione non consente simboli con versione non definita e verrà emesso un errore fatale
anziché.

--default-symver
Creare e utilizzare una versione del simbolo predefinita (il soname) per i simboli esportati senza versione.

--default-imported-symver
Creare e utilizzare una versione del simbolo predefinita (il soname) per i simboli importati senza versione.

--no-warn-dismatch
Normalmente ld darà un errore se provi a collegare insieme file di input che sono
non corrispondenti per qualche motivo, forse perché sono stati compilati per diversi
processori o per diverse endianness. Questa opzione dice ld che dovrebbe
consentire silenziosamente tali possibili errori. Questa opzione deve essere utilizzata solo con cautela, in
casi in cui hai intrapreso qualche azione speciale che assicura che gli errori del linker siano
inappropriata.

--no-warn-search-mancata corrispondenza
Normalmente ld darà un avviso se trova una libreria incompatibile durante una libreria
ricerca. Questa opzione silenzia l'avviso.

--no-intero-archivio
Disattiva l'effetto del --intero-archivio opzione per i file di archivio successivi.

--nohibition-exec
Conserva il file di output eseguibile ogni volta che è ancora utilizzabile. Normalmente, il linker
non produrrà un file di output se incontra errori durante il processo di collegamento; esso
esce senza scrivere un file di output quando emette errori di sorta.

-nostdlib
Cerca solo nelle directory della libreria specificate esplicitamente nella riga di comando. Biblioteca
directory specificate negli script del linker (inclusi gli script del linker specificati nella
riga di comando) vengono ignorati.

--oformato=formato di output
ld può essere configurato per supportare più di un tipo di file oggetto. Se tuo ld is
configurato in questo modo, è possibile utilizzare il --oformat opzione per specificare il formato binario per
il file oggetto di output. Anche quando ld è configurato per supportare oggetti alternativi
formati, di solito non è necessario specificarlo, in quanto ld dovrebbe essere configurato per produrre
come formato di output predefinito il formato più comune su ogni macchina. formato di output è un
stringa di testo, il nome di un particolare formato supportato dalle librerie BFD. (Puoi
elenca i formati binari disponibili con objdump -i.) Il comando di script
"OUTPUT_FORMAT" può anche specificare il formato di output, ma questa opzione lo sovrascrive.

-torta
--pic-eseguibile
Creare un eseguibile indipendente dalla posizione. Questo è attualmente supportato solo su ELF
piattaforme. Gli eseguibili indipendenti dalla posizione sono simili alle librerie condivise in questo
vengono trasferiti dal linker dinamico all'indirizzo virtuale scelto dal sistema operativo
loro (che può variare tra le invocazioni). Come i normali eseguibili collegati dinamicamente
possono essere eseguiti e i simboli definiti nell'eseguibile non possono essere sovrascritti da
biblioteche condivise.

-qmagic
Questa opzione viene ignorata per la compatibilità con Linux.

-Qy Questa opzione viene ignorata per la compatibilità con SVR4.

--relax
--no-relax
Un'opzione con effetti dipendenti dalla macchina. Questa opzione è supportata solo su alcuni
obiettivi.

Su alcune piattaforme il --relax l'opzione esegue ottimizzazioni globali specifiche per il target
che diventano possibili quando il linker risolve l'indirizzamento nel programma, come
rilassanti modalità di indirizzo, sintetizzando nuove istruzioni, selezionando una versione più breve di
istruzioni correnti e combinando valori costanti.

Su alcune piattaforme queste ottimizzazioni globali del tempo di collegamento possono rendere il debug simbolico di
l'eseguibile risultante impossibile. Questo è noto per essere il caso del Matsushita
Famiglia di processori MN10200 e MN10300.

Su piattaforme in cui questo non è supportato, --relax è accettato, ma ignorato.

Su piattaforme dove --relax è accettata l'opzione --no-relax può essere usato per disabilitare
la caratteristica.

--retain-symbols-file=Nome del file
conservare - esclusivamente. i simboli elencati nel file Nome del file, scartando tutti gli altri. Nome del file
è semplicemente un file flat, con un nome di simbolo per riga. Questa opzione è particolarmente
utile in ambienti (come VxWorks) in cui è presente una grande tabella di simboli globale
accumulati gradualmente, per conservare la memoria di runtime.

--retain-file-simboli effettua non scartare simboli non definiti, o simboli necessari per
traslochi.

Puoi solo specificare --retain-file-simboli una volta nella riga di comando. Ha la precedenza -s
che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana -S.

-rpercorso=dir
Aggiungere una directory al percorso di ricerca della libreria di runtime. Viene utilizzato quando si collega un ELF
eseguibile con oggetti condivisi. Tutto -rpercorso gli argomenti sono concatenati e passati a
il linker di runtime, che li utilizza per individuare gli oggetti condivisi in fase di esecuzione. Il -rpercorso
l'opzione viene utilizzata anche quando si individuano oggetti condivisi necessari per gli oggetti condivisi
incluso esplicitamente nel link; vedere la descrizione del -rpath-link opzione. Se
-rpercorso non viene utilizzato quando si collega un eseguibile ELF, il contenuto dell'ambiente
se definita, verrà utilizzata la variabile "LD_RUN_PATH".

Il -rpercorso l'opzione può essere utilizzata anche su SunOS. Per impostazione predefinita, su SunOS, il linker lo farà
formare un percorso di ricerca runtime tra tutti i -L opzioni è dato. Se un -rpercorso opzione
viene utilizzato, il percorso di ricerca runtime sarà formato esclusivamente utilizzando il -rpercorso opzioni,
ignorando il -L opzioni. Questo può essere utile quando si usa gcc, che aggiunge molti -L
opzioni che possono essere su file system montati su NFS.

Per compatibilità con altri linker ELF, se il -R l'opzione è seguita da una directory
nome, piuttosto che un nome di file, viene trattato come il -rpercorso opzione.

-rpath-link=dir
Quando si utilizza ELF o SunOS, una libreria condivisa potrebbe richiederne un'altra. Questo accade quando un
Il collegamento "ld -shared" include una libreria condivisa come uno dei file di input.

Quando il linker incontra una tale dipendenza quando esegue un'operazione non condivisa, non rilocabile
collegamento, cercherà automaticamente di individuare la libreria condivisa richiesta e includerla
nel link, se non è incluso esplicitamente. In tal caso, il -rpath-link opzione
specifica la prima serie di directory in cui eseguire la ricerca. Il -rpath-link l'opzione può specificare
una sequenza di nomi di directory specificando un elenco di nomi separati da
due punti o comparendo più volte.

Questa opzione dovrebbe essere usata con cautela in quanto sovrascrive il percorso di ricerca che potrebbe avere
stato compilato a fondo in una libreria condivisa. In tal caso è possibile utilizzare
involontariamente un percorso di ricerca diverso da quello che farebbe il linker di runtime.

Il linker utilizza i seguenti percorsi di ricerca per individuare le librerie condivise richieste:

1. Qualsiasi directory specificata da -rpath-link opzioni.

2. Qualsiasi directory specificata da -rpercorso opzioni. La differenza tra -rpercorso che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana
-rpath-link è quella directory specificata da -rpercorso le opzioni sono incluse nel
eseguibile e utilizzato in fase di esecuzione, mentre il -rpath-link l'opzione è efficace solo
al momento del collegamento. ricerca -rpercorso in questo modo è supportato solo da linker nativi e
cross linker che sono stati configurati con il --con-sysroot opzione.

3. Su un sistema ELF, per i linker nativi, se il -rpercorso che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana -rpath-link le opzioni erano
non utilizzato, cercare il contenuto della variabile d'ambiente "LD_RUN_PATH".

4. Su SunOS, se il -rpercorso l'opzione non è stata utilizzata, cerca nelle directory specificate
utilizzando -L opzioni.

5. Per un linker nativo, cerca il contenuto della variabile d'ambiente
"LD_LIBRARY_PATH".

6. Per un linker ELF nativo, le directory in "DT_RUNPATH" o "DT_RPATH" di un
libreria vengono ricercate le librerie condivise necessarie. Le voci "DT_RPATH" sono
ignorato se esistono voci "DT_RUNPATH".

7. Le directory predefinite, normalmente / lib che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana / Usr / lib.

8. Per un linker nativo su un sistema ELF, se il file /etc/ld.so.conf esiste, la lista
di directory trovate in quel file.

Se la libreria condivisa richiesta non viene trovata, il linker emetterà un avviso e
continua con il link

-condiviso
-B condivisibile
Crea una libreria condivisa. Attualmente è supportato solo su ELF, XCOFF e SunOS
piattaforme. Su SunOS, il linker creerà automaticamente una libreria condivisa se il -e
l'opzione non è utilizzata e nel collegamento sono presenti simboli non definiti.

--sort-common
--sort-common=ascendente
--sort-common=discendente
Questa opzione dice ld per ordinare i simboli comuni per allineamento in ordine crescente o
ordine decrescente quando li inserisce nelle sezioni di output appropriate. Il simbolo
gli allineamenti considerati sono a sedici byte o superiori, a otto byte, a quattro byte, a due byte e
un byte. Questo per evitare spazi tra i simboli dovuti a vincoli di allineamento. se no
viene specificato l'ordinamento, quindi viene assunto l'ordine decrescente.

--sort-section=nome
Questa opzione applicherà "SORT_BY_NAME" a tutti i pattern di sezione con caratteri jolly nel linker
script.

--sort-section=allineamento
Questa opzione applicherà "SORT_BY_ALIGNMENT" a tutti i modelli di sezione con caratteri jolly nel
script del linker.

--dividi-per-file[=Taglia]
Simile a --split-by-reloc ma crea una nuova sezione di output per ogni file di input quando
Taglia è raggiunto. Taglia il valore predefinito è 1 se non specificato.

--split-by-reloc[=contare]
Tenta di creare sezioni extra nel file di output in modo che nessuna singola sezione di output in
il file contiene più di contare traslochi. Questo è utile quando si generano enormi
file rilocabili per il download in alcuni kernel in tempo reale con l'oggetto COFF
formato del file; poiché COFF non può rappresentare più di 65535 traslochi in un singolo
sezione. Nota che questo non funzionerà con i formati di file oggetto che non lo fanno
supportare sezioni arbitrarie. Il linker non dividerà le singole sezioni di input
per la ridistribuzione, quindi se una singola sezione di input contiene più di contare traslochi
una sezione di output conterrà quel numero di rilocazioni. contare il valore predefinito è
32768

--statistiche
Calcola e visualizza statistiche sul funzionamento del linker, come l'esecuzione
tempo e utilizzo della memoria.

--sysroot=elenco
Utilizza elenco come posizione di sysroot, sovrascrivendo il valore di default di configure-time.
Questa opzione è supportata solo dai linker che sono stati configurati usando --con-sysroot.

--formato-tradizionale
Per alcuni obiettivi, l'output di ld è diverso in qualche modo dall'output di alcuni
linker esistente. Questo interruttore richiede ld utilizzare invece il formato tradizionale.

Ad esempio, su SunOS, ld combina voci duplicate nella tabella delle stringhe di simboli. Questo
può ridurre la dimensione di un file di output con informazioni di debug complete di oltre 30
per cento. Sfortunatamente, il programma SunOS "dbx" non può leggere il programma risultante
("gdb" non ha problemi). Il --formato-tradizionale l'interruttore dice ld non combinare
voci duplicate.

--sezione-inizio=nomesezione=org
Individua una sezione nel file di output all'indirizzo assoluto fornito da org. Puoi usare
questa opzione tutte le volte necessarie per individuare più sezioni nel comando
linea. org deve essere un singolo intero esadecimale; per compatibilità con altri linker,
puoi omettere la parte principale 0x solitamente associato a valori esadecimali. Nota: ci
non dovrebbero esserci spazi bianchi in mezzo nomesezione, il segno di uguale ("="), e org.

-Tbss=org
-Tdati=org
-Ttesto=org
Uguale a --inizio-sezione, con ".bss", ".data" o ".text" come nomesezione.

-Ttesto-segmento=org
Quando si crea un eseguibile ELF, imposterà l'indirizzo del primo byte del testo
segmento.

-Trodata-segmento=org
Quando si crea un eseguibile ELF o un oggetto condiviso per un target in cui i dati di sola lettura
è nel suo segmento separato dal testo eseguibile, imposterà l'indirizzo di
il primo byte del segmento di dati di sola lettura.

-Tldata-segmento=org
Quando si crea un eseguibile ELF o un oggetto condiviso per il modello di memoria media x86-64, è
imposterà l'indirizzo del primo byte del segmento ldata.

--simboli-non risolti=metodo
Determinare come gestire i simboli non risolti. Ci sono quattro possibili valori per
metodo:

ignora tutto
Non segnalare simboli non risolti.

rapporto-tutto
Segnala tutti i simboli non risolti. Questa è l'impostazione predefinita.

ignora-in-file-oggetto
Segnala i simboli non risolti che sono contenuti nelle librerie condivise, ma ignorali
se provengono da normali file oggetto.

ignore-in-shared-libs
Segnala i simboli non risolti che provengono da normali file oggetto, ma ignorali se
provengono da librerie condivise. Questo può essere utile quando si crea una dinamica
binario ed è noto che tutte le librerie condivise a cui dovrebbe fare riferimento
sono inclusi nella riga di comando del linker.

Il comportamento delle librerie condivise da sole può essere controllato anche dal
--[no-]allow-shlib-undefined opzione.

Normalmente il linker genererà un messaggio di errore per ogni simbolo non risolto segnalato
ma l'opzione --warn-simboli-irrisolti può cambiarlo in un avviso.

--dll-verbose
--verboso[=NUMERO]
Visualizza il numero di versione per ld ed elenca le emulazioni del linker supportate. Schermo
quali file di input possono e non possono essere aperti. Visualizza lo script del linker utilizzato da
il linker. Se l'opzionale NUMERO argomento > 1, anche lo stato del simbolo del plugin sarà
visualizzato.

--version-script=file-script di versione
Specificare il nome di uno script di versione nel linker. Questo è tipicamente usato quando
creazione di librerie condivise per specificare informazioni aggiuntive sulla versione
gerarchia per la libreria che si sta creando. Questa opzione è completamente supportata solo su ELF
piattaforme che supportano librerie condivise; vedere VERSIONE. È parzialmente supportato su
Piattaforme PE, che possono utilizzare script di versione per filtrare la visibilità dei simboli nell'esportazione automatica
modalità: tutti i simboli contrassegnati locale nello script della versione non verrà esportato.

--warn-comune
Avvisa quando un simbolo comune è combinato con un altro simbolo comune o con un simbolo
definizione. I linker Unix consentono questa pratica un po' sciatta, ma i linker su alcuni
altri sistemi operativi no. Questa opzione ti consente di trovare potenziali problemi
dalla combinazione di simboli globali. Sfortunatamente, alcune librerie C usano questa pratica, quindi
potresti ricevere alcuni avvisi sui simboli nelle librerie e nei tuoi programmi.

Esistono tre tipi di simboli globali, illustrati qui da esempi C:

int i = 1;
Una definizione, che va nella sezione dati inizializzata del file di output.

esterno int i;
Un riferimento indefinito, che non alloca spazio. Ci deve essere o a
definizione o un simbolo comune per la variabile da qualche parte.

int i;
Un simbolo comune Se ci sono solo (uno o più) simboli comuni per una variabile,
va nell'area dei dati non inizializzati del file di output. Il linker si fonde
più simboli comuni per la stessa variabile in un unico simbolo. Se sono
di diverse dimensioni, sceglie la taglia più grande. Il linker trasforma un simbolo comune
in una dichiarazione, se esiste una definizione della stessa variabile.

Il --warn-comune L'opzione può produrre cinque tipi di avvisi. Ogni avviso è composto da
una coppia di righe: la prima descrive il simbolo appena incontrato, e la seconda
descrive il simbolo precedente incontrato con lo stesso nome. Uno o entrambi i due
i simboli saranno un simbolo comune.

1. Trasformare un simbolo comune in un riferimento, perché esiste già una definizione
per il simbolo.

( ): avviso: comune di ` '
scavalcato per definizione
( ): avviso: definito qui

2. Trasformare un simbolo comune in un riferimento, perché una definizione successiva per il
si incontra il simbolo. Questo è lo stesso del caso precedente, tranne per il fatto che
i simboli vengono incontrati in un ordine diverso.

( ): avviso: definizione di ` '
comune prioritario
( ): avviso: il comune è qui

3. Unione di un simbolo comune con un precedente simbolo comune della stessa dimensione.

( ): avviso: multiplo comune
di ` '
( ): avviso: il comune precedente è qui

4. Unione di un simbolo comune con un precedente simbolo comune più grande.

( ): avviso: comune di ` '
sovrascritto da un comune più grande
( ): avviso: il comune più grande è qui

5. Unione di un simbolo comune con un precedente simbolo comune più piccolo. Questo è lo stesso
come il caso precedente, salvo che i simboli si incontrano in modo diverso
ordine.

( ): avviso: comune di ` '
ignorando il comune più piccolo
( ): avviso: il comune più piccolo è qui

--warn-costruttori
Avvisa se vengono utilizzati costruttori globali. Questo è utile solo per alcuni file oggetto
formati. Per formati come COFF o ELF, il linker non può rilevare l'uso di global
costruttori.

--warn-multiple-gp
Avvisa se sono necessari più valori di puntatore globale nel file di output. Questo è solo
significativo per alcuni processori, come l'Alpha. In particolare, alcuni processori
metti le costanti di grande valore in una sezione speciale. Un registro speciale (il globale
puntatore) punta al centro di questa sezione, in modo che le costanti possano essere caricate
efficiente tramite una modalità di indirizzamento relativo del registro di base. Poiché l'offset in base-
la modalità relativa del registro è fissa e relativamente piccola (ad es. 16 bit), questo limita il
dimensione massima del pool costante. Pertanto, in programmi di grandi dimensioni, è spesso necessario
utilizzare più valori del puntatore globale per essere in grado di indirizzare tutti i possibili
costanti. Questa opzione fa sì che venga emesso un avviso ogni volta che si verifica questo caso.

--avverti-una volta
Avvisa solo una volta per ogni simbolo indefinito, piuttosto che una volta per modulo che si riferisce a
esso.

--warn-section-align
Avvisa se l'indirizzo di una sezione di uscita viene modificato a causa dell'allineamento. Tipicamente,
l'allineamento sarà impostato da una sezione di input. L'indirizzo verrà modificato solo se
non esplicitamente specificato; cioè, se il comando "SECTIONS" non specifica un inizio
indirizzo per la sezione

--warn-shared-textrel
Avvisa se il linker aggiunge un DT_TEXTREL a un oggetto condiviso.

--warn-alternate-em
Avvisa se un oggetto ha un codice macchina ELF alternativo.

--warn-simboli-irrisolti
Se il linker riporterà un simbolo non risolto (vedi l'opzione
--simboli-irrisolti) genererà normalmente un errore. Questa opzione lo rende
generare invece un avviso.

--simboli-di-errore-irrisolto
Ciò ripristina il comportamento predefinito del linker di generare errori durante la segnalazione
simboli irrisolti.

--intero-archivio
Per ogni archivio menzionato sulla riga di comando dopo il --intero-archivio opzione,
includere ogni file oggetto nell'archivio nel collegamento, invece di cercare nel
archivio per i file oggetto richiesti. Questo è normalmente usato per trasformare un file di archivio
in una libreria condivisa, forzando l'inclusione di ogni oggetto nella condivisione risultante
biblioteca. Questa opzione può essere utilizzata più di una volta.

Due note quando si utilizza questa opzione da gcc: primo, gcc non conosce questa opzione,
quindi devi usare -Wl,-intero-archivio. Secondo, non dimenticare di usare
-Wl,-no-intero-archivio dopo il tuo elenco di archivi, perché gcc aggiungerà il proprio elenco
di archivi al tuo collegamento e potresti non volere che questo flag influisca anche su quelli.

--avvolgere=simbolo
Usa una funzione wrapper per simbolo. Qualsiasi riferimento indefinito a simbolo sarà risolto
avvolgere_simbolo". Qualsiasi riferimento indefinito a "__real_simbolo" sarà risolto a
simbolo.

Questo può essere usato per fornire un wrapper per una funzione di sistema. La funzione wrapper
dovrebbe essere chiamato "__wrap_simbolo". Se desidera chiamare la funzione di sistema, dovrebbe
chiama "__real_simbolo".

Ecco un esempio banale:

vuoto *
__wrap_malloc (dimensione_t c)
{
printf ("malloc chiamato con %zu\n", c);
restituire __real_malloc (c);
}

Se colleghi un altro codice a questo file usando --avvolgere malloc, quindi tutte le chiamate a "malloc"
chiamerà invece la funzione "__wrap_malloc". La chiamata a "__real_malloc" in
"__wrap_malloc" chiamerà la vera funzione "malloc".

Potresti voler fornire anche una funzione "__real_malloc", in modo che i collegamenti senza il
--avvolgere l'opzione avrà successo. Se lo fai, non dovresti mettere la definizione di
"__real_malloc" nello stesso file di "__wrap_malloc"; se lo fai, l'assemblatore può
risolvere la chiamata prima che il linker abbia la possibilità di avvolgerla in "malloc".

--eh-frame-hdr
Richiedere la creazione della sezione ".eh_frame_hdr" e dell'intestazione del segmento ELF "PT_GNU_EH_FRAME".

--no-ld-generated-unwind-info
Richiedi la creazione di ".eh_frame" informazioni unwind per sezioni di codice generate dal linker come
PLT. Questa opzione è attiva per impostazione predefinita se sono supportate le informazioni di svolgimento generate dal linker.

--enable-new-dtags
--disabilita-nuovi-dtags
Questo linker può creare i nuovi tag dinamici in ELF. Ma i vecchi sistemi ELF potrebbero non esserlo
capiscili. Se specifichi --enable-new-dtags, i nuovi tag dinamici saranno
creati in base alle esigenze e i tag dinamici precedenti verranno omessi. Se specifichi
--disabilita-nuovi-dtags, non verranno creati nuovi tag dinamici. Per impostazione predefinita, la nuova dinamica
i tag non vengono creati. Notare che queste opzioni sono disponibili solo per i sistemi ELF.

--dimensione-hash=numero
Imposta la dimensione predefinita delle tabelle hash del linker su un numero primo vicino a numero.
L'aumento di questo valore può ridurre il tempo necessario al linker per eseguire il suo
task, a scapito dell'aumento dei requisiti di memoria del linker. Allo stesso modo
la riduzione di questo valore può ridurre i requisiti di memoria a scapito della velocità.

--stile-hash=stile
Imposta il tipo di tabella hash del linker. stile può essere "sysv" per ELF classico
sezione ".hash", "gnu" per il nuovo stile GNU sezione ".gnu.hash" o "both" per entrambi
le classiche tabelle hash ELF ".hash" e il nuovo stile GNU ".gnu.hash". L'impostazione predefinita è "sysv".

--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
Sulle piattaforme ELF, queste opzioni controllano il modo in cui le sezioni di debug DWARF vengono compresse utilizzando
zlib. --compress-debug-sections=none non comprime le sezioni di debug DWARF.
--compress-debug-sections=zlib-gnu comprime le sezioni di debug DWARF e rinomina il debug
nomi delle sezioni per cominciare .zdebug invece di .debug. --compress-debug-sections=zlib
che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana --compress-debug-sections=zlib-gabi comprimere le sezioni di debug DWARF con
SHF_COMPRESSED dall'ELF ABI. Il comportamento predefinito varia a seconda del
target coinvolto e le opzioni di configurazione utilizzate per costruire la toolchain. Il predefinito
può essere determinato esaminando l'output del linker --Aiuto opzione.

--riduci-spese-di-memoria
Questa opzione riduce i requisiti di memoria durante l'esecuzione di ld, a spese del collegamento
velocità. Questo è stato introdotto per selezionare il vecchio algoritmo O(n^2) per il file della mappa di collegamento
generazione, piuttosto che il nuovo algoritmo O(n) che utilizza circa il 40% in più di memoria per
memorizzazione dei simboli.

Un altro effetto dello switch è impostare la dimensione della tabella hash predefinita su 1021, che
salva nuovamente la memoria al costo di allungare il tempo di esecuzione del linker. Questo non è fatto
tuttavia se il --dimensione hash è stato utilizzato l'interruttore.

Il --riduci-spese-di-memoria l'interruttore può essere utilizzato anche per abilitare altri compromessi in
versioni future del linker.

--build-id
--build-id=stile
Richiedere la creazione di una sezione note ELF ".note.gnu.build-id" o di un COFF ".buildid"
sezione. I contenuti della nota sono bit univoci che identificano questo file collegato.
stile può essere "uuid" per utilizzare 128 bit casuali, "sha1" per utilizzare un hash SHA160 a 1 bit sul
parti normative dei contenuti di output, "md5" per utilizzare un hash MD128 a 5 bit sul
parti normative dei contenuti di output, o "0xstringa esadecimale" usare una stringa di bit scelta
specificato come un numero pari di cifre esadecimali (caratteri "-" e ":" tra
le coppie di cifre vengono ignorate). Se stile viene omesso, viene utilizzato "sha1".

Gli stili "md5" e "sha1" producono un identificatore che è sempre lo stesso in an
file di output identico, ma sarà univoco tra tutti i file di output non identici. è
non destinato a essere confrontato come checksum per il contenuto del file. Un file collegato può
essere modificato in seguito da altri strumenti, ma la stringa di bit dell'ID build che identifica l'originale
il file collegato non cambia.

Passando "nessuno" per stile disabilita l'impostazione da qualsiasi opzione "--build-id" in precedenza
la riga di comando.

Il linker i386 PE supporta il -condiviso opzione, che fa sì che l'output sia a
libreria collegata dinamicamente (DLL) invece di un normale eseguibile. Dovresti nominare il
output "*.dll" quando si utilizza questa opzione. Inoltre, il linker supporta completamente il
file standard "*.def", che possono essere specificati sulla riga di comando del linker come un oggetto
file (infatti, dovrebbe precedere gli archivi da cui esporta i simboli, per assicurarsi che ottengano
collegato, proprio come un normale file oggetto).

Oltre alle opzioni comuni a tutti i target, il linker PE i386 supporta ulteriori
opzioni della riga di comando che sono specifiche per la destinazione i386 PE. Opzioni che prendono valori
possono essere separati dai loro valori da uno spazio o da un segno di uguale.

--add-stdcall-alias
Se forniti, simboli con suffisso stdcall (@nn) verrà esportato così com'è e anche con il
suffisso spogliato. [Questa opzione è specifica per la porta di destinazione i386 PE del linker]

--file-base filetto
Utilizza filetto come nome di un file in cui salvare gli indirizzi di base di tutti i
spostamenti necessari per la generazione di DLL con dlltool. [Questo è un PE specifico per i386
opzione]

--dll
Crea una DLL invece di un normale eseguibile. Puoi anche usare -condiviso o specificare a
"LIBRARY" in un dato file ".def". [Questa opzione è specifica per l'i386 PE mirato
porta del linker]

--abilita-nomi-sezioni-lunghe
--disabilita-nomi-sezioni-lunghe
Le varianti PE del formato oggetto COFF aggiungono un'estensione che consente l'uso di
nomi di sezione più lunghi di otto caratteri, il limite normale per COFF. Per impostazione predefinita,
questi nomi sono consentiti solo nei file oggetto, poiché le immagini eseguibili completamente collegate non lo fanno
portare la tabella delle stringhe COFF richiesta per supportare i nomi più lunghi. Come estensione GNU,
è possibile consentire il loro utilizzo anche in immagini eseguibili, oppure (probabilmente
inutilmente!) non consentirlo nei file oggetto, utilizzando queste due opzioni. eseguibile
le immagini generate con questi nomi di sezioni lunghe sono leggermente non standard, portando come
fanno una tabella di stringhe e possono generare un output confuso se esaminati con non GNU
Strumenti compatibili con i PE, come visualizzatori di file e dumper. Tuttavia, GDB si basa sull'uso di
PE nomi di sezioni lunghi per trovare sezioni di informazioni di debug di Dwarf-2 in un eseguibile
image in fase di esecuzione, quindi se nessuna opzione è specificata nella riga di comando, ld volere
abilitare nomi di sezioni lunghi, ignorando il comportamento predefinito e tecnicamente corretto,
quando rileva la presenza di informazioni di debug durante il collegamento di un'immagine eseguibile e
non spogliare i simboli. [Questa opzione è valida per tutte le porte di destinazione PE del linker]

--enable-stdcall-fixup
--disable-stdcall-fixup
Se il collegamento trova un simbolo che non può risolvere, tenterà di eseguire "fuzzy"
collegamento" cercando un altro simbolo definito che differisce solo nel formato del
nome del simbolo (cdecl vs stdcall) e risolverà quel simbolo collegandosi alla corrispondenza.
Ad esempio, il simbolo indefinito "_pippo" potrebbe essere collegato alla funzione "_pippo@12", oppure
il simbolo indefinito "_bar@16" potrebbe essere collegato alla funzione "_bar". Quando il
il linker fa questo, stampa un avviso, poiché normalmente non avrebbe dovuto collegarsi,
ma a volte le librerie di importazione generate da dll di terze parti potrebbero richiedere questa funzione
essere utilizzabile. Se specifichi --enable-stdcall-fixup, questa funzione è completamente abilitata
e gli avvisi non vengono stampati. Se specifichi --disable-stdcall-fixup, questa funzione è
disabilitato e tali discrepanze sono considerate errori. [Questa opzione è specifica per
la porta i386 PE mirata del linker]

--principale-sottolineatura
--nessun-sottolineatura-principale
Per la maggior parte dei target il prefisso del simbolo predefinito è un trattino basso ed è definito in target's
descrizione. Con questa opzione è possibile disabilitare/abilitare il carattere di sottolineatura predefinito
simbolo-prefisso.

--export-all-symbols
Se fornito, tutti i simboli globali negli oggetti utilizzati per creare una DLL verranno esportati da
la DLL. Nota che questa è l'impostazione predefinita se altrimenti non sarebbe stato esportato
simboli. Quando i simboli vengono esportati esplicitamente tramite file DEF o esportati implicitamente
tramite gli attributi della funzione, l'impostazione predefinita è di non esportare nient'altro a meno che questa opzione
viene data. Notare che i simboli "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12" e "impure_ptr" non verranno esportati automaticamente. Anche,
i simboli importati da altre DLL non verranno riesportati, né verranno specificati i simboli
il layout interno della DLL come quelli che iniziano con "_head_" o terminano con
"_nomino". Inoltre, nessun simbolo da "libgcc", "libstd++", "libmingw32", o
"crtX.o" verrà esportato. Simboli i cui nomi iniziano con "__rtti_" o "__builtin_"
non verrà esportato, per aiutare con le DLL C++. Infine, c'è un ampio elenco di
cygwin-simboli privati ​​che non vengono esportati (ovviamente, questo si applica durante la costruzione
DLL per obiettivi Cygwin). Queste esclusioni di cygwin sono: "_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" e "environ". [Questa opzione è specifica per l'i386 PE mirato
porta del linker]

--exclude-simboli simbolo,simbolo, ...
Specifica un elenco di simboli che non devono essere esportati automaticamente. Il simbolo
i nomi possono essere delimitati da virgole o due punti. [Questa opzione è specifica per i386 PE
porta mirata del linker]

--exclude-all-symbols
Specifica che nessun simbolo deve essere esportato automaticamente. [Questa opzione è specifica per
la porta i386 PE mirata del linker]

--file-allineamento
Specificare l'allineamento del file. Le sezioni nel file inizieranno sempre agli offset del file
che sono multipli di questo numero. Il valore predefinito è 512. [Questa opzione è specifica
alla porta di destinazione i386 PE del linker]

--mucchio riserva
--mucchio riserva,commettere
Specificare il numero di byte di memoria da riservare (e facoltativamente impegnare) da utilizzare come
mucchio per questo programma. L'impostazione predefinita è 1 MB riservato, 4K impegnato. [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--base-immagine APPREZZIAMO
Utilizza APPREZZIAMO come indirizzo di base del tuo programma o dll. Questa è la memoria più bassa
posizione che verrà utilizzata quando viene caricato il programma o la dll. Per ridurre la necessità di
riposiziona e migliora le prestazioni delle tue DLL, ognuna dovrebbe avere un indirizzo di base univoco
e non si sovrappongono ad altre DLL. Il valore predefinito è 0x400000 per gli eseguibili e
0x10000000 per le dll. [Questa opzione è specifica per la porta di destinazione i386 PE del
linker]

--uccidere
Se fornito, i suffissi stdcall (@nn) verrà rimosso dai simboli prima che lo siano
esportato. [Questa opzione è specifica per la porta di destinazione i386 PE del linker]

--consapevolezza di indirizzi grandi
Se fornito, viene impostato il bit appropriato nel campo "Caratteristiche" dell'intestazione COFF
per indicare che questo eseguibile supporta indirizzi virtuali maggiori di 2 gigabyte.
Questo dovrebbe essere usato insieme a /3GB o /USERVA=APPREZZIAMO megabyte passare in
la sezione "[sistemi operativi]" del BOOT.INI. In caso contrario, questo bit non ha alcun effetto.
[Questa opzione è specifica per le porte di destinazione PE del linker]

--disable-large-address-aware
Ripristina l'effetto di un precedente --consapevolezza di indirizzi grandi opzione. Questo è utile se
--consapevolezza di indirizzi grandi è sempre impostato dal driver del compilatore (es. Cygwin gcc) e dal
eseguibile non supporta indirizzi virtuali superiori a 2 gigabyte. [Questa opzione
è specifico per le porte di destinazione PE del linker]

--versione-immagine-maggiore APPREZZIAMO
Imposta il numero maggiore della "versione immagine". Il valore predefinito è 1. [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--versione-os-maggiore APPREZZIAMO
Imposta il numero maggiore della "versione del sistema operativo". Il valore predefinito è 4. [Questa opzione è specifica
alla porta di destinazione i386 PE del linker]

--versione-sottosistema-maggiore APPREZZIAMO
Imposta il numero maggiore della "versione del sottosistema". Il valore predefinito è 4. [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--versione-immagine-minore APPREZZIAMO
Imposta il numero minore della "versione immagine". Il valore predefinito è 0. [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--versione-os-minore APPREZZIAMO
Imposta il numero minore della "versione del sistema operativo". Il valore predefinito è 0. [Questa opzione è specifica
alla porta di destinazione i386 PE del linker]

--versione-sottosistema-minore APPREZZIAMO
Imposta il numero minore della "versione del sottosistema". Il valore predefinito è 0. [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--output-def filetto
Il linker creerà il file filetto che conterrà un file DEF corrispondente a
la DLL che il linker sta generando. Questo file DEF (che dovrebbe chiamarsi "*.def") può
essere usato per creare una libreria di importazione con "dlltool" o può essere usato come riferimento a
simboli esportati automaticamente o implicitamente. [Questa opzione è specifica per i386 PE
porta mirata del linker]

--out-implib filetto
Il linker creerà il file filetto che conterrà una import lib corrispondente a
la DLL che il linker sta generando. Questa import lib (che dovrebbe essere chiamata "*.dll.a" o
"*.a" può essere utilizzato per collegare i client alla DLL generata; questo comportamento lo rende
possibile saltare un passaggio separato di creazione della libreria di importazione "dlltool". [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--enable-auto-image-base
--enable-auto-image-base=APPREZZIAMO
Scegli automaticamente la base dell'immagine per le DLL, iniziando facoltativamente con base APPREZZIAMO,
a meno che non ne venga specificato uno utilizzando l'argomento "--image-base". Usando un hash generato
dal dllname per creare basi di immagini univoche per ogni DLL, collisioni in memoria e
si evitano spostamenti che possono ritardare l'esecuzione del programma. [Questa opzione è specifica
alla porta di destinazione i386 PE del linker]

--disable-auto-image-base
Non generare automaticamente una base di immagini univoca. Se non è specificato dall'utente
image base ("--image-base") quindi usa l'impostazione predefinita della piattaforma. [Questa opzione è specifica
alla porta di destinazione i386 PE del linker]

--dll-prefisso-ricerca stringa
Quando ci si collega dinamicamente a una dll senza una libreria di importazione, cercare
" .dll" invece di "lib .dll". Questo comportamento consente
facile distinzione tra DLL realizzate per le varie "sottopiattaforme": native, cygwin,
uwin, pw, ecc. Ad esempio, le DLL cygwin usano tipicamente "--dll-search-prefix=cyg".
[Questa opzione è specifica per la porta di destinazione i386 PE del linker]

--enable-auto-import
Esegui un collegamento sofisticato di "_symbol" a "__imp__symbol" per le importazioni di DATI da DLL,
e creare i simboli thunk necessari durante la creazione delle librerie di importazione con
quelle esportazioni di DATI. Nota: l'uso dell'estensione 'auto-import' causerà il testo
sezione del file immagine da rendere scrivibile. Questo non è conforme al PE-COFF
specifica di formato pubblicata da Microsoft.

Nota: l'uso dell'estensione 'auto-import' causerà anche dati di sola lettura che sarebbero
normalmente essere inserito nella sezione .rdata per essere inserito nella sezione .data
Invece. Questo è per aggirare un problema con i const che è descritto
qui: http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

L'uso di 'importazione automatica' generalmente 'funziona', ma a volte potresti vederlo
messaggio:

"variabile ' ' non può essere importato automaticamente. Si prega di leggere la documentazione per ld's
"--enable-auto-import" per i dettagli."

Questo messaggio si verifica quando una (sotto)espressione accede a un indirizzo dato alla fine da
la somma di due costanti (le tabelle di importazione Win32 ne consentono solo una). Istanze in cui questo
può verificarsi includere gli accessi ai campi membro delle variabili struct importate da una DLL,
oltre a utilizzare un indice costante in una variabile di matrice importata da una DLL. Qualunque
la variabile multiword (array, struct, long long, ecc.) può attivare questa condizione di errore.
Tuttavia, indipendentemente dall'esatto tipo di dati della variabile esportata incriminata, ld lo farà
rilevalo sempre, invia l'avviso ed esci.

Esistono diversi modi per affrontare questa difficoltà, indipendentemente dal tipo di dati del
variabile esportata:

Un modo è usare l'opzione --enable-runtime-pseudo-reloc. Questo lascia il compito di
regolare i riferimenti nel codice client per l'ambiente di runtime, quindi questo metodo funziona
solo quando l'ambiente di runtime supporta questa funzionalità.

Una seconda soluzione è forzare una delle "costanti" a essere una variabile, ovvero
sconosciuto e non ottimizzabile in fase di compilazione. Per gli array ci sono due possibilità:
a) rendere l'indice (l'indirizzo dell'array) una variabile, oppure b) rendere l'indice 'costante'
una variabile. Così:

tipo extern array_esterno[];
extern_array[1] -->
{ tipo volatile *t=extern_array; t[1] }

or

tipo extern array_esterno[];
extern_array[1] -->
{ int volatile t=1; array_esterno[t] }

Per gli struct (e la maggior parte degli altri tipi di dati multiparola) l'unica opzione è rendere il
struct stesso (o la variabile long long o ...):

struttura esterna s struttura_esterna;
extern_struct.field -->
{ struttura volatile s *t=&extern_struct; t->campo}

or

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

Un terzo metodo per affrontare questa difficoltà consiste nell'abbandonare l'"importazione automatica" per il
simbolo offensivo e contrassegnarlo con "__declspec(dllimport)". Tuttavia, in pratica che
richiede l'utilizzo di #defines in fase di compilazione per indicare se si sta creando una DLL,
creazione di codice client che si collegherà alla DLL o semplicemente creazione/collegamento a uno statico
biblioteca. Nella scelta tra i vari metodi di risoluzione del 'diretto'
affrontare con un problema di offset costante, dovresti considerare l'utilizzo tipico del mondo reale:

Originale:

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

Soluzione 1:

--foo.h
int esterno arr[];
--foo.c
#include "pippo.h"
void main(int argc, char **argv){
/* Questa soluzione è per win32 e cygwin; non "ottimizzare" */
int volatile *parr = arr;
printf("%d\n",parr[1]);
}

Soluzione 2:

--foo.h
/* Nota: si presume l'esportazione automatica (no __declspec(dllexport)) */
#if (definito(_WIN32) || definito(__CYGWIN__)) && \
!(defined(FOO_BUILD_DLL) || definito(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#else
#definisci FOO_IMPORT
#endif
extern FOO_IMPORT int arr[];
--foo.c
#include "pippo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

Un quarto modo per evitare questo problema è ricodificare la libreria per utilizzare un funzionale
interfaccia piuttosto che un'interfaccia dati per le variabili incriminate (es set_pippo() che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana
get_pippo() funzioni accessorie). [Questa opzione è specifica per la porta di destinazione i386 PE
del linker]

--disable-auto-import
Non tentare di eseguire collegamenti sofisticati di "_symbol" a "__imp__symbol" per DATA
importazioni da DLL. [Questa opzione è specifica per la porta di destinazione i386 PE del
linker]

--enable-runtime-pseudo-reloc
Se il tuo codice contiene espressioni descritte nella sezione --enable-auto-import, ovvero,
Importazioni di dati da DLL con offset diverso da zero, questo interruttore creerà un vettore di
"pseudo rilocazioni di runtime" che possono essere utilizzate dall'ambiente di runtime per adeguarsi
riferimenti a tali dati nel tuo codice cliente. [Questa opzione è specifica per i386 PE
porta mirata del linker]

--disable-runtime-pseudo-reloc
Non creare pseudo rilocazioni per le importazioni di DATI con offset diverso da zero dalle DLL. [Questo
l'opzione è specifica per la porta di destinazione i386 PE del linker]

--enable-extra-pe-debug
Mostra ulteriori informazioni di debug relative all'importazione automatica dei simboli thunk. [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--allineamento-sezione
Imposta l'allineamento della sezione. Le sezioni in memoria inizieranno sempre agli indirizzi che
sono un multiplo di questo numero. Il valore predefinito è 0x1000. [Questa opzione è specifica per il
i386 PE porta mirata del linker]

--pila riserva
--pila riserva,commettere
Specificare il numero di byte di memoria da riservare (e facoltativamente impegnare) da utilizzare come
pila per questo programma. L'impostazione predefinita è 2 MB riservati, 4K impegnati. [Questa opzione è
specifico per la porta di destinazione i386 PE del linker]

--sottosistema quale
--sottosistema quale:maggiore
--sottosistema quale:maggiore.minore
Specifica il sottosistema in cui verrà eseguito il programma. I valori legali per
quale sono "native", "windows", "console", "posix" e "xbox". Puoi opzionalmente impostare
anche la versione del sottosistema. I valori numerici sono accettati anche per quale. [Questa opzione
è specifico per la porta di destinazione i386 PE del linker]

Le seguenti opzioni impostano i flag nel campo "DllCharacteristics" del file PE
intestazione: [Queste opzioni sono specifiche per le porte di destinazione PE del linker]

--alta entropia-va
L'immagine è compatibile con la randomizzazione del layout dello spazio degli indirizzi a 64 bit (ASLR).

--base dinamica
L'indirizzo di base dell'immagine può essere riposizionato utilizzando la randomizzazione del layout dello spazio degli indirizzi
(ASL). Questa funzionalità è stata introdotta con MS Windows Vista per i bersagli i386 PE.

--forcenteg
Vengono applicati controlli di integrità del codice.

--nxcompat
L'immagine è compatibile con la prevenzione dell'esecuzione dei dati. Questa funzione era
introdotto con MS Windows XP SP2 per target i386 PE.

--no-isolamento
Sebbene l'immagine comprenda l'isolamento, non isolare l'immagine.

--no-seh
L'immagine non utilizza SEH. Nessun gestore SE può essere chiamato da questa immagine.

--nessun vincolo
Non legare questa immagine.

--wdmdriver
Il driver utilizza il modello di driver MS Windows.

--tsaware
L'immagine è compatibile con Terminal Server.

--insert-timestamp
--no-insert-timestamp
Inserisci un timestamp reale nell'immagine. Questo è il comportamento predefinito in quanto corrisponde
codice legacy e significa che l'immagine funzionerà con altri strumenti proprietari. Il
il problema con questa impostazione predefinita è che risulterà in immagini leggermente diverse
prodotto ogni volta che le stesse fonti sono collegate. L'opzione --no-insert-timestamp può
essere usato per inserire un valore zero per il timestamp, questo assicurando che i binari prodotti
provenienti da fonti identiche confronteranno in modo identico.

Il target C6X uClinux utilizza un formato binario chiamato DSBT per supportare le librerie condivise. Ogni
la libreria condivisa nel sistema deve avere un indice univoco; tutti gli eseguibili usano un indice di
0.

--dsbt-size Taglia
Questa opzione imposta il numero di voci nel DSBT dell'eseguibile corrente o condiviso
biblioteca a Taglia. L'impostazione predefinita è creare una tabella con 64 voci.

--dsbt-indice Index
Questa opzione imposta l'indice DSBT dell'eseguibile corrente o della libreria condivisa su Index.
Il valore predefinito è 0, che è appropriato per la generazione di eseguibili. Se un condiviso
la libreria è generata con un indice DSBT pari a 0, le reloc "R_C6000_DSBT_INDEX" sono
copiato nel file di output.

Il --no-merge-exidx-voci l'interruttore disabilita l'unione di voci exidx adiacenti in
informazioni sullo svolgimento del telaio.

I linker 68HC11 e 68HC12 supportano opzioni specifiche per controllare il banco di memoria
commutazione di mappatura e generazione del codice del trampolino.

--no-trampolino
Questa opzione disabilita la generazione del trampolino. Per impostazione predefinita, un trampolino è
generato per ogni funzione far che viene chiamata utilizzando un'istruzione "jsr" (questa
accade quando viene preso un puntatore a una funzione lontana).

--banca-finestra Nome
Questa opzione indica al linker il nome della regione di memoria nel MEMORIA
specifica che descrive la finestra del banco di memoria. La definizione di tale regione è
quindi utilizzato dal linker per calcolare il paging e gli indirizzi all'interno della finestra di memoria.

Le seguenti opzioni sono supportate per controllare la gestione della generazione GOT durante il collegamento per
68K obiettivi.

--ottenuto=Digitare
Questa opzione indica al linker quale schema di generazione GOT utilizzare. Digitare dovrebbe essere uno
of singolo, negativo., multigot or bersaglio. Per maggiori informazioni fare riferimento alla voce Info
per ld.

Le seguenti opzioni sono supportate per controllare la generazione di istruzioni microMIPS quando
collegamento per obiettivi MIPS.

--insn32
--no-insn32
Queste opzioni controllano la scelta delle istruzioni microMIPS utilizzate nel codice generato da
il linker, come quello nel PLT o negli stub di rilegatura pigri, o in rilassamento. Se
--insn32 viene utilizzato, il linker utilizza solo codifiche di istruzioni a 32 bit. Per impostazione predefinita
o se --no-insn32 viene utilizzato, vengono utilizzate tutte le codifiche delle istruzioni, comprese quelle a 16 bit
dove possibile.

AMBIENTE


Puoi cambiare il comportamento di ld con le variabili d'ambiente "GNUTARGET",
"LDEMULAZIONE" e "COLLECT_NO_DEMANGLE".

"GNUTARGET" determina il formato dell'oggetto del file di input se non lo usi -b (o il suo sinonimo
--formato). Il suo valore dovrebbe essere uno dei nomi BFD per un formato di input. Se non c'è
"GNUTARGET" nell'ambiente, ld utilizza il formato naturale del target. Se "GNUTARGET"
è impostato su "predefinito", quindi BFD tenta di scoprire il formato di input esaminando il binario
file di input; questo metodo spesso riesce, ma ci sono potenziali ambiguità, poiché non
non è un metodo per garantire che il numero magico utilizzato per specificare i formati dei file oggetto sia
unico. Tuttavia, la procedura di configurazione per BFD su ciascun sistema pone il
formato convenzionale per quel sistema prima nell'elenco di ricerca, quindi le ambiguità sono risolte
favorevole alla convenzione.

"LDEMULATION" determina l'emulazione predefinita se non si utilizza il -m opzione. Il
l'emulazione può influenzare vari aspetti del comportamento del linker, in particolare il linker predefinito
sceneggiatura. Puoi elencare le emulazioni disponibili con il --verboso or -V opzioni. Se la
-m l'opzione non è utilizzata e la variabile d'ambiente "LDEMULATION" non è definita, il
l'emulazione predefinita dipende da come è stato configurato il linker.

Normalmente, il linker utilizzerà per impostazione predefinita i simboli di smantellamento. Tuttavia, se
"COLLECT_NO_DEMANGLE" è impostato nell'ambiente, quindi per impostazione predefinita non sarà smantellato
simboli. Questa variabile d'ambiente è usata in modo simile dal linker "gcc"
programma wrapper. L'impostazione predefinita può essere sovrascritta da --demaglia che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana --no-demanle
opzioni.

Usa mips64el-linux-gnuabi64-ld.bfd online utilizzando i servizi onworks.net


Ad


Ad

Gli ultimi programmi online per Linux e Windows