InglêsFrancêsAlemãoItalianoPortuguêsRussaEspanhol

favicon do OnWorks

mips64-linux-gnuabi64-ld - Online na nuvem

Execute mips64-linux-gnuabi64-ld no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando mips64-linux-gnuabi64-ld que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online Windows ou emulador online MAC OS

PROGRAMA:

NOME


ld - O vinculador GNU

SINOPSE


ld [opções] objfile ...

DESCRIÇÃO


ld combina uma série de arquivos de objetos e arquivos, realoca seus dados e amarra o símbolo
referências. Normalmente, a última etapa na compilação de um programa é executar ld.

ld aceita arquivos de linguagem de comando do Linker escritos em um superconjunto do Editor de Link da AT&T
Sintaxe da linguagem de comando, para fornecer controle total e explícito sobre o processo de vinculação.

Esta página do manual não descreve a linguagem de comando; Veja o ld entrada em "info" por completo
detalhes sobre a linguagem de comando e outros aspectos do vinculador GNU.

Esta versão do ld usa as bibliotecas BFD de propósito geral para operar em arquivos de objeto. Esse
permite ld para ler, combinar e gravar arquivos de objeto em muitos formatos diferentes --- para
exemplo, COFF ou "a.out". Diferentes formatos podem ser ligados entre si para produzir qualquer
tipo disponível de arquivo de objeto.

Além de sua flexibilidade, o vinculador GNU é mais útil do que outros vinculadores no fornecimento
informações de diagnóstico. Muitos linkers abandonam a execução imediatamente ao encontrar um
erro; quando possível, ld continua executando, permitindo que você identifique outros erros
(ou, em alguns casos, para obter um arquivo de saída apesar do erro).

O vinculador GNU ld destina-se a cobrir uma ampla gama de situações e ser tão compatível
quanto possível com outros vinculadores. Como resultado, você tem muitas opções para controlar seu
comportamento.

OPÇÕES


O vinculador oferece suporte a uma infinidade de opções de linha de comando, mas na prática real, poucas delas
são usados ​​em qualquer contexto particular. Por exemplo, um uso frequente de ld é ligar
arquivos de objeto Unix padrão em um sistema Unix padrão compatível. Em tal sistema, para
vincule um arquivo "hello.o":

eu faço /lib/crt0.o hello.o -lc

Isso diz ld para produzir um arquivo chamado saída como resultado da vinculação do arquivo
"/lib/crt0.o" com "hello.o" e a biblioteca "libc.a", que virá do padrão
diretórios de pesquisa. (Veja a discussão do -l opção abaixo.)

Algumas das opções de linha de comando para ld pode ser especificado em qualquer ponto da linha de comando.
No entanto, opções que se referem a arquivos, como -l or -T, fazer com que o arquivo seja lido no
ponto em que a opção aparece na linha de comando, em relação aos arquivos-objeto e
outras opções de arquivo. A repetição de opções que não sejam de arquivo com um argumento diferente terá
nenhum efeito adicional ou substitui ocorrências anteriores (aquelas mais à esquerda no comando
linha) dessa opção. As opções que podem ser especificadas de forma significativa mais de uma vez são
indicado nas descrições abaixo.

Os argumentos não opcionais são arquivos ou arquivos-objeto que devem ser vinculados. Elas
pode seguir, preceder ou ser misturado com opções de linha de comando, exceto que um arquivo de objeto
argumento não pode ser colocado entre uma opção e seu argumento.

Normalmente, o vinculador é chamado com pelo menos um arquivo de objeto, mas você pode especificar outro
formas de arquivos de entrada binários usando -l, -Re a linguagem de comando do script. Se não binário
todos os arquivos de entrada são especificados, o vinculador não produz nenhuma saída e emite o
mensagem Não entrada arquivos.

Se o vinculador não puder reconhecer o formato de um arquivo de objeto, ele assumirá que é um
script de vinculador. Um script especificado desta forma aumenta o script do linker principal usado para
o link (o script de vinculador padrão ou aquele especificado usando -T). Este
recurso permite que o vinculador se vincule a um arquivo que parece ser um objeto ou um
arquivo, mas na verdade apenas define alguns valores de símbolo, ou usa "INPUT" ou "GRUPO" para
carregar outros objetos. Especificar um script desta forma apenas aumenta o vinculador principal
script, com os comandos extras colocados após o script principal; use o -T opção para substituir
o script do vinculador padrão inteiramente, mas observe o efeito do comando "INSERT".

Para opções cujos nomes são uma única letra, os argumentos das opções devem seguir o
letra de opção sem espaço em branco intermediário, ou ser fornecida como argumentos separados
imediatamente após a opção que os requer.

Para opções cujos nomes são várias letras, um traço ou dois podem preceder o
nome da opção; por exemplo, -símbolo de rastreamento e - símbolo de traço são equivalentes. Nota --- lá
é uma exceção a esta regra. Várias opções de letras que começam com um 'o' minúsculo
só pode ser precedido por dois travessões. Isso é para reduzir a confusão com o -o opção. Então
por exemplo -magia define o nome do arquivo de saída para mágica enquanto que --magic define o NMAGIC
sinalizador na saída.

Os argumentos para opções de várias letras devem ser separados do nome da opção por um
sinal de igual, ou ser fornecido como argumentos separados imediatamente após a opção que
os requer. Por exemplo, - símbolo de traço Foo e --trace-symbol = foo são equivalentes.
Abreviações exclusivas dos nomes das opções de várias letras são aceitas.

Nota --- se o vinculador estiver sendo invocado indiretamente, por meio de um driver de compilador (por exemplo gcc) então
todas as opções de linha de comando do vinculador devem ser prefixadas por -Wl, (ou o que for apropriado
para o driver de compilador específico) como este:

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

Isso é importante, porque, caso contrário, o programa do driver do compilador pode descartar silenciosamente o
opções de vinculador, resultando em um link inválido. A confusão também pode surgir ao passar opções
que requerem valores através de um driver, como o uso de um espaço entre a opção e o argumento
atua como um separador e faz com que o driver passe apenas a opção para o vinculador e o
argumento para o compilador. Neste caso, é mais simples usar as formas unidas de ambos
opções de uma e várias letras, como:

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

Aqui está uma tabela das opções genéricas de linha de comando aceitas pelo vinculador GNU:

@filete
Leia as opções de linha de comando de filete. As opções lidas são inseridas no lugar do
original @filete opção. Se filete não existe ou não pode ser lido, então a opção
será tratado literalmente e não removido.

Opções em filete são separados por espaços em branco. Um caractere de espaço em branco pode ser incluído
em uma opção, colocando toda a opção entre aspas simples ou duplas. Algum
caractere (incluindo uma barra invertida) pode ser incluído prefixando o caractere a ser
incluído com uma barra invertida. o filete pode conter @ adicionaisfilete opções; algum
essas opções serão processadas recursivamente.

-a palavra chave
Esta opção é compatível com HP / UX. o palavra chave o argumento deve ser um de
as cordas arquivo, compartilhadoou omissão. -arquivo é funcionalmente equivalente a
-Bstatic, e as outras duas palavras-chave são funcionalmente equivalentes a -Bdinâmico. Este
opção pode ser usada qualquer número de vezes.

--auditoria AUDITLIB
Adiciona AUDITLIB à entrada "DT_AUDIT" da seção dinâmica. AUDITLIB não está marcado
para a existência, nem usará o DT_SONAME especificado na biblioteca. Se especificado
várias vezes "DT_AUDIT" conterá uma lista separada por dois pontos de interfaces de auditoria para
usar. Se o vinculador encontrar um objeto com uma entrada de auditoria enquanto procura por
bibliotecas, ele adicionará uma entrada "DT_DEPAUDIT" correspondente no arquivo de saída. Esse
A opção só é significativa em plataformas ELF que suportam a interface rtld-audit.

-A arquitetura
--architecture =arquitetura
Na versão atual de ld, esta opção é útil apenas para a família Intel 960 de
arquiteturas. Naquilo ld configuração, o arquitetura argumento identifica o
arquitetura particular na família 960, permitindo algumas salvaguardas e modificando o
caminho de pesquisa da biblioteca de arquivos.

Versões futuras de ld pode suportar uma funcionalidade semelhante para outra arquitetura
famílias.

-b Formato de entrada
--format =Formato de entrada
ld pode ser configurado para suportar mais de um tipo de arquivo de objeto. Se seu ld is
configurado desta forma, você pode usar o -b opção para especificar o formato binário para entrada
arquivos de objeto que seguem esta opção na linha de comando. Mesmo quando ld está configurado
para suportar formatos de objeto alternativos, você geralmente não precisa especificar isso, pois ld
deve ser configurado para esperar como formato de entrada padrão o formato mais comum em cada
máquina. Formato de entrada é uma string de texto, o nome de um formato específico suportado por
as bibliotecas BFD. (Você pode listar os formatos binários disponíveis com objdump -i.)

Você pode querer usar esta opção se estiver ligando arquivos com um binário incomum
formato. Você também pode usar -b para alternar formatos explicitamente (ao vincular arquivos de objeto
de diferentes formatos), incluindo -b Formato de entrada antes de cada grupo de arquivos objeto
em um formato específico.

O formato padrão é obtido da variável de ambiente "GNUTARGET".

Você também pode definir o formato de entrada de um script, usando o comando "TARGET";

-c Arquivo de comando de ressonância magnética
--mri-script =Arquivo de comando de ressonância magnética
Para compatibilidade com linkers produzidos por MRI, ld aceita arquivos de script escritos em um
linguagem de comando alternativa e restrita, descrita nos Arquivos de script compatíveis com MRI
seção da documentação GNU ld. Apresente arquivos de script de ressonância magnética com a opção -c; usar
a -T opção de executar scripts de linker escritos no uso geral ld script
língua. Se MRI-cmdfile não existe, ld procura por ele nos diretórios especificados
Por qualquer -L opções.

-d
-cc
-dp Essas três opções são equivalentes; vários formulários são suportados para compatibilidade
com outros vinculadores. Eles atribuem espaço a símbolos comuns, mesmo se uma saída relocável
arquivo é especificado (com -r) O comando de script "FORCE_COMMON_ALLOCATION" tem o
mesmo efeito.

--depaudit AUDITLIB
-P AUDITLIB
Adiciona AUDITLIB à entrada "DT_DEPAUDIT" da seção dinâmica. AUDITLIB não é
verificado quanto à existência, nem usará o DT_SONAME especificado na biblioteca. Se
especificado várias vezes "DT_DEPAUDIT" conterá uma lista separada por dois pontos de auditoria
interfaces para usar. Esta opção só é significativa em plataformas ELF que suportam o
interface rtld-audit. A opção -P é fornecida para compatibilidade com Solaris.

-e entrada
--entry =entrada
Utilização entrada como o símbolo explícito para o início da execução do seu programa, em vez de
o ponto de entrada padrão. Se não houver nenhum símbolo nomeado entrada, o vinculador tentará
analisar entrada como um número, e use-o como o endereço de entrada (o número será
interpretado na base 10; você pode usar um líder 0x para a base 16, ou um líder 0 para base


--exclude-libs lib,lib, ...
Especifica uma lista de bibliotecas de arquivo da qual os símbolos não devem ser automaticamente
exportado. Os nomes das bibliotecas podem ser delimitados por vírgulas ou dois pontos. Especificando
"--exclude-libs ALL" exclui símbolos em todas as bibliotecas de arquivos da exportação automática.
Esta opção está disponível apenas para a porta i386 PE direcionada do vinculador e para ELF
portas-alvo. Para i386 PE, os símbolos explicitamente listados em um arquivo .def ainda estão
exportados, independentemente desta opção. Para portas ELF direcionadas, os símbolos afetados por este
opção será tratada como oculta.

--exclude-modules-for-implib módulo,módulo, ...
Especifica uma lista de arquivos-objeto ou membros do arquivo, dos quais os símbolos não devem ser
exportado automaticamente, mas que deve ser copiado no atacado para a biblioteca de importação
sendo gerado durante o link. Os nomes dos módulos podem ser delimitados por vírgulas ou
dois pontos, e deve corresponder exatamente aos nomes de arquivo usados ​​por ld para abrir os arquivos; para arquivo
membros, este é simplesmente o nome do membro, mas para arquivos de objeto, o nome listado deve
incluem e correspondem precisamente a qualquer caminho usado para especificar o arquivo de entrada no link do
linha de comando. Esta opção está disponível apenas para a porta i386 PE de destino do
vinculador. Os símbolos listados explicitamente em um arquivo .def ainda são exportados, independentemente de
esta opção.

-E
--export-dynamic
--no-export-dynamic
Ao criar um executável vinculado dinamicamente, usando o -E opção ou o
--export-dynamic opção faz com que o linker adicione todos os símbolos ao símbolo dinâmico
tabela. A tabela de símbolos dinâmicos é o conjunto de símbolos que são visíveis a partir de
objetos em tempo de execução.

Se você não usar nenhuma dessas opções (ou use o --no-export-dynamic opção para
restaurar o comportamento padrão), a tabela de símbolos dinâmicos normalmente conterá apenas
aqueles símbolos que são referenciados por algum objeto dinâmico mencionado no link.

Se você usar "dlopen" para carregar um objeto dinâmico que precisa se referir aos símbolos
definido pelo programa, ao invés de algum outro objeto dinâmico, então você provavelmente
precisa usar esta opção ao vincular o próprio programa.

Você também pode usar a lista dinâmica para controlar quais símbolos devem ser adicionados ao
tabela de símbolos dinâmica se o formato de saída for compatível. Veja a descrição de
--lista-dinâmica.

Observe que esta opção é específica para portas de destino ELF. Os alvos PE suportam um similar
função para exportar todos os símbolos de uma DLL ou EXE; veja a descrição de
--export-all-symbols abaixo.

-EB Vincule objetos big-endian. Isso afeta o formato de saída padrão.

-EL Vincule objetos little-endian. Isso afeta o formato de saída padrão.

-f nome
--auxiliary =nome
Ao criar um objeto compartilhado ELF, defina o campo DT_AUXILIARY interno para o
nome especificado. Isso diz ao vinculador dinâmico que a tabela de símbolos do compartilhamento
objeto deve ser usado como um filtro auxiliar na tabela de símbolos do objeto compartilhado
nome.

Se, posteriormente, você vincular um programa a este objeto de filtro, então, quando executar o
programa, o vinculador dinâmico verá o campo DT_AUXILIARY. Se o vinculador dinâmico
resolve quaisquer símbolos do objeto de filtro, ele primeiro verificará se há um
definição no objeto compartilhado nome. Se houver, será usado em vez do
definição no objeto de filtro. O objeto compartilhado nome não precisa existir. Assim, o
objeto compartilhado nome pode ser usado para fornecer uma implementação alternativa de certos
funções, talvez para depuração ou para desempenho específico da máquina.

Esta opção pode ser especificada mais de uma vez. As entradas DT_AUXILIARY serão criadas
na ordem em que aparecem na linha de comando.

-F nome
--filter =nome
Ao criar um objeto compartilhado ELF, defina o campo DT_FILTER interno para o especificado
nome. Isso diz ao vinculador dinâmico que a tabela de símbolos do objeto compartilhado
está sendo criado deve ser usado como um filtro na tabela de símbolos do objeto compartilhado
nome.

Se, posteriormente, você vincular um programa a este objeto de filtro, então, quando executar o
programa, o vinculador dinâmico verá o campo DT_FILTER. O vinculador dinâmico irá
resolver símbolos de acordo com a tabela de símbolos do objeto de filtro como de costume, mas
irá realmente ligar para as definições encontradas no objeto compartilhado nome. Então, o
objeto de filtro pode ser usado para selecionar um subconjunto dos símbolos fornecidos pelo objeto
nome.

Alguns linkers mais antigos usavam o -F opção em todo um conjunto de ferramentas de compilação para
especificando o formato de arquivo de objeto para arquivos de objeto de entrada e saída. O vinculador GNU
usa outros mecanismos para este fim: o -b, --formato, --oformato opções, o
Comando "TARGET" em scripts de vinculador e a variável de ambiente "GNUTARGET". O GNU
o vinculador irá ignorar o -F opção ao não criar um objeto compartilhado ELF.

-fini =nome
Ao criar um executável ELF ou objeto compartilhado, chame NAME quando o executável ou
objeto compartilhado é descarregado, definindo DT_FINI para o endereço da função. Por
padrão, o vinculador usa "_fini" como a função a ser chamada.

-g Ignorado. Fornecido para compatibilidade com outras ferramentas.

-G valor
--gpsize =valor
Defina o tamanho máximo dos objetos a serem otimizados usando o registro GP para tamanho. Este
só é significativo para formatos de arquivo de objeto, como MIPS ELF que suporta colocar grandes
e pequenos objetos em diferentes seções. Isso é ignorado para outro arquivo de objeto
formatos.

-h nome
-soname =nome
Ao criar um objeto compartilhado ELF, defina o campo DT_SONAME interno para o especificado
nome. Quando um executável está vinculado a um objeto compartilhado que possui um campo DT_SONAME,
então, quando o executável é executado, o vinculador dinâmico tentará carregar o arquivo compartilhado
objeto especificado pelo campo DT_SONAME em vez de usar o nome de arquivo dado a
o vinculador.

-i Execute um link incremental (igual à opção -r).

-init =nome
Ao criar um executável ELF ou objeto compartilhado, chame NAME quando o executável ou
objeto compartilhado é carregado, definindo DT_INIT para o endereço da função. Por
padrão, o vinculador usa "_init" como a função a ser chamada.

-l namespec
--library =namespec
Adicione o arquivo ou arquivo de objeto especificado por namespec à lista de arquivos a serem vinculados.
Esta opção pode ser usada quantas vezes forem necessárias. Se namespec é da forma :nome do arquivo, ld
irá pesquisar o caminho da biblioteca para um arquivo chamado nome do arquivo, caso contrário, ele irá pesquisar o
caminho da biblioteca para um arquivo chamado libnamespec.a.

Em sistemas que suportam bibliotecas compartilhadas, ld também pode procurar outros arquivos além
libnamespec.a. Especificamente, em sistemas ELF e SunOS, ld irá procurar um diretório para
uma biblioteca chamada libnamespec.so antes de procurar por um chamado libnamespec.a. (Por
convenção, uma extensão ".so" indica uma biblioteca compartilhada.) Observe que este comportamento
não se aplica à :nome do arquivo, que sempre especifica um arquivo chamado nome do arquivo.

O vinculador irá pesquisar um arquivo apenas uma vez, no local onde ele está especificado em
a linha de comando. Se o arquivo define um símbolo que estava indefinido em algum objeto
que apareceu antes do arquivo na linha de comando, o vinculador incluirá o
arquivo (s) apropriado (s) do arquivo. No entanto, um símbolo indefinido em um objeto
aparecer mais tarde na linha de comando não fará com que o vinculador pesquise o arquivo
novamente.

veja a -( opção para forçar o vinculador a pesquisar arquivos várias vezes.

Você pode listar o mesmo arquivo várias vezes na linha de comando.

Este tipo de pesquisa de arquivo é padrão para vinculadores Unix. No entanto, se você for
utilização ld no AIX, observe que é diferente do comportamento do vinculador AIX.

-L diretório de pesquisa
--library-path =diretório de pesquisa
Adicionar caminho diretório de pesquisa para a lista de caminhos que ld irá procurar por bibliotecas de arquivos e
ld scripts de controle. Você pode usar esta opção quantas vezes quiser. Os diretórios são
pesquisados ​​na ordem em que são especificados na linha de comando. Diretórios
especificados na linha de comando são pesquisados ​​antes dos diretórios padrão. Tudo -L
opções se aplicam a todos -l opções, independentemente da ordem em que as opções aparecem.
-L as opções não afetam como ld procura por um script de linker, a menos que -T opção
Especificadas.

If diretório de pesquisa começa com "=", então o "=" será substituído pelo raiz do sistema prefixo,
controlado pelo --sysroot opção ou especificado quando o vinculador é configurado.

O conjunto padrão de caminhos pesquisados ​​(sem ser especificado com -L) depende de qual
modo de emulação ld está usando e, em alguns casos, também como foi configurado.

Os caminhos também podem ser especificados em um script de link com o comando "SEARCH_DIR".
Os diretórios especificados desta forma são pesquisados ​​no ponto em que o script do linker
aparece na linha de comando.

-m emulação
Emular o emulação vinculador. Você pode listar as emulações disponíveis com o
--verbose or -V opções.

Se o -m opção não é usada, a emulação é tirada do "LDEMULATION"
variável de ambiente, se estiver definida.

Caso contrário, a emulação padrão depende de como o vinculador foi configurado.

-M
--print-map
Imprima um mapa de links na saída padrão. Um mapa de links fornece informações sobre o
link, incluindo o seguinte:

· Onde os arquivos de objeto são mapeados na memória.

· Como os símbolos comuns são alocados.

· Todos os membros do arquivo incluídos no link, com uma menção do símbolo que
fez com que o membro do arquivo fosse trazido.

· Os valores atribuídos aos símbolos.

Nota - símbolos cujos valores são calculados por uma expressão que envolve um
referência a um valor anterior do mesmo símbolo pode não ter resultado correto
exibido no mapa de links. Isso ocorre porque o vinculador descarta o intermediário
resultados e retém apenas o valor final de uma expressão. Sob tal
circunstâncias, o vinculador exibirá o valor final entre colchetes.
Assim, por exemplo, um script de vinculador contendo:

fo = 1
fo = fo * 4
fo = fo + 8

irá produzir a seguinte saída no mapa de links se o -M opção é usada:

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

Vejo Expressões para obter mais informações sobre expressões em scripts de vinculador.

-n
--nmagic
Desative o alinhamento da página das seções e desative a vinculação às bibliotecas compartilhadas. Se
o formato de saída suporta números mágicos de estilo Unix, marque a saída como "NMAGIC".

-N
--magic
Defina as seções de texto e dados para serem legíveis e graváveis. Além disso, não alinhe a página
o segmento de dados e desabilite a vinculação às bibliotecas compartilhadas. Se o formato de saída
suporta números mágicos de estilo Unix, marque a saída como "OMAGIC". Nota: embora um
seção de texto gravável é permitida para alvos PE-COFF, ela não está em conformidade com
especificação de formato publicada pela Microsoft.

--sem magia
Esta opção nega a maioria dos efeitos do -N opção. Ele define a seção de texto para
ser somente leitura e força o segmento de dados a ser alinhado à página. Nota - esta opção faz
não habilita a vinculação a bibliotecas compartilhadas. Usar -Bdinâmico por esta.

-o saída
--output =saída
Utilização saída como o nome do programa produzido por ld; se esta opção não for
especificado, o nome a.out é usado por padrão. O comando de script "OUTPUT" também pode
especifique o nome do arquivo de saída.

-O nível
If nível é um valor numérico maior que zero ld otimiza a saída. Isso pode
leva muito mais tempo e, portanto, provavelmente só deve ser habilitado para o final
binário. No momento, esta opção afeta apenas a geração de biblioteca compartilhada ELF. Futuro
as versões do vinculador podem fazer mais uso dessa opção. Também atualmente não há
diferença no comportamento do vinculador para diferentes valores diferentes de zero desta opção.
Novamente, isso pode mudar com versões futuras.

--push-state
O --push-state permite preservar o estado atual das bandeiras que regem o
manipulação de arquivos de entrada para que todos possam ser restaurados com um correspondente
--pop-state opção.

As opções abrangidas são: -Bdinâmico, -Bstatic, -dn, -dy, -call_shared,
-non_shared, -estático, -N, -n, --arquivo inteiro, --no-whole-archive, -r, -Ur,
--copy-dt-needed-entries, --no-copy-dt-needed-entries, --como necessário, --não conforme necessário,
e -a.

Um alvo para esta opção são as especificações para pkg-config. Quando usado com o
--libs opção todas as bibliotecas possivelmente necessárias são listadas e, em seguida, possivelmente vinculadas com
o tempo todo. É melhor retornar algo da seguinte forma:

-Wl, - push-state, - conforme necessário -libone -libtwo -Wl, - pop-state

Desfaz o efeito de --push-state, restaura os valores anteriores dos sinalizadores que governam
manipulação de arquivo de entrada.

-q
--emit-relocs
Deixe as seções de relocação e o conteúdo em executáveis ​​totalmente vinculados. Post link
ferramentas de análise e otimização podem precisar dessas informações para executar corretamente
modificações de executáveis. Isso resulta em executáveis ​​maiores.

Esta opção é atualmente suportada apenas em plataformas ELF.

--força-dinâmica
Força o arquivo de saída a ter seções dinâmicas. Esta opção é específica para VxWorks
alvos.

-r
--relocável
Gerar saída relocável - ou seja, gerar um arquivo de saída que pode, por sua vez, servir como
entrada para ld. Isso é freqüentemente chamado parcialmente vinculação. Como efeito colateral, em ambientes
que suportam números mágicos Unix padrão, esta opção também define o arquivo de saída
número mágico para "OMAGIC". Se esta opção não for especificada, um arquivo absoluto é
produzido. Ao vincular programas C ++, esta opção precisarão não resolver referências a
construtores; para fazer isso, use -Ur.

Quando um arquivo de entrada não tem o mesmo formato do arquivo de saída, vinculação parcial
só é suportado se o arquivo de entrada não contiver nenhuma realocação. Diferente
formatos de saída podem ter outras restrições; por exemplo, alguns formatos baseados em "a.out"
não oferece suporte para vinculação parcial com arquivos de entrada em outros formatos.

Esta opção faz a mesma coisa que -i.

-R nome do arquivo
--just-symbols =nome do arquivo
Leia os nomes dos símbolos e seus endereços de nome do arquivo, mas não o realoque ou inclua
na saída. Isso permite que seu arquivo de saída se refira simbolicamente a absoluto
localizações de memória definidas em outros programas. Você pode usar esta opção mais do que
uma vez.

Para compatibilidade com outros linkers ELF, se o -R opção é seguida por um diretório
nome, em vez de um nome de arquivo, é tratado como o -rpath opção.

-s
--strip-all
Omita todas as informações de símbolo do arquivo de saída.

-S
--strip-debug
Omita as informações do símbolo do depurador (mas não todos os símbolos) do arquivo de saída.

-t
--vestígio
Imprima os nomes dos arquivos de entrada como ld os processa.

-T Arquivo de script
--script =Arquivo de script
Utilização Arquivo de script como o script do vinculador. Este script substitui ldscript de vinculador padrão de
(ao invés de adicionar a ele), então arquivo de comando deve especificar tudo o que é necessário para
descreva o arquivo de saída. Se Arquivo de script não existe no diretório atual,
"ld" procura por ele nos diretórios especificados por qualquer -L opções. Múltiplo
-T as opções se acumulam.

-dT Arquivo de script
--default-script =Arquivo de script
Utilização Arquivo de script como o script de vinculador padrão.

Esta opção é semelhante ao --roteiro opção, exceto que o processamento do script é
atrasado até que o resto da linha de comando tenha sido processado. Isso permite
opções colocadas após o --script padrão opção na linha de comando para afetar o
comportamento do script do vinculador, que pode ser importante quando a linha de comando do vinculador
não pode ser controlado diretamente pelo usuário. (por exemplo, porque a linha de comando está sendo
construída por outra ferramenta, como gcc).

-u símbolo
--undefined =símbolo
força símbolo para ser inserido no arquivo de saída como um símbolo indefinido. Isso pode,
por exemplo, acionar a vinculação de módulos adicionais de bibliotecas padrão. -u pode ser
repetido com argumentos de opção diferentes para inserir símbolos indefinidos adicionais. Esse
opção é equivalente ao comando de script do vinculador "EXTERN".

Se esta opção estiver sendo usada para forçar módulos adicionais a serem puxados para o link,
e se for um erro o símbolo permanecer indefinido, a opção
--require-definido deve ser usado em seu lugar.

--require-defined =símbolo
Exigir que símbolo é definido no arquivo de saída. Esta opção é igual à opção
--Indefinido exceto que se símbolo não está definido no arquivo de saída, então o vinculador
irá emitir um erro e sair. O mesmo efeito pode ser alcançado em um script de vinculador por
usando "EXTERN", "ASSERT" e "DEFINED" juntos. Esta opção pode ser usada vários
vezes para exigir símbolos adicionais.

-Ur Para qualquer coisa diferente de programas C ++, esta opção é equivalente a -r: gera
saída relocável --- ou seja, um arquivo de saída que pode, por sua vez, servir como entrada para ld. Quando
vinculando programas C ++, -Ur parece resolver referências a construtores, ao contrário -r. Faz
não funciona para usar -Ur em arquivos que foram eles próprios vinculados a -Ur; uma vez o
a tabela do construtor foi construída, não pode ser adicionada. Usar -Ur só para o último
link parcial, e -r para os outros.

--orphan-handling =MODA
Controle como as seções órfãs são tratadas. Uma seção órfã é aquela que não é especificamente
mencionado em um script de vinculador.

MODA pode ter qualquer um dos seguintes valores:

"Lugar, colocar"
Seções órfãs são colocadas em uma seção de saída adequada seguindo a estratégia
descrito em Órfão seções. A opção --exclusivo também afeta como as seções são
colocada.

"descartar"
Todas as seções órfãs são descartadas, colocando-as no /DESCARTAR/ seção.

"avisar"
O vinculador colocará a seção órfã como "local" e também emitirá um aviso.

"erro"
O vinculador será encerrado com um erro se qualquer seção órfã for encontrada.

O padrão se - manipulação de orfanato não é dado é "lugar".

--unique [=SECÇÃO]
Cria uma seção de saída separada para cada seção de entrada correspondente SECÇÃO, ou se o
curinga opcional SECÇÃO argumento está faltando, para cada seção de entrada órfã. Um
a seção órfã não é mencionada especificamente em um script de vinculador. Você pode usar este
opção várias vezes na linha de comando; Impede a fusão normal de entrada
seções com o mesmo nome, substituindo as atribuições da seção de saída em um script de vinculador.

-v
--versão
-V Exibir o número da versão para ld. o -V opção também lista as emulações com suporte.

-x
--descartar-tudo
Exclua todos os símbolos locais.

-X
--discard-locals
Exclua todos os símbolos locais temporários. (Esses símbolos começam com local específico do sistema
prefixos de rótulo, normalmente .L para sistemas ELF ou L para sistemas a.out tradicionais.)

-y símbolo
--trace-symbol =símbolo
Imprima o nome de cada arquivo vinculado no qual símbolo parece. Esta opção pode ser dada
qualquer número de vezes. Em muitos sistemas, é necessário inserir um sublinhado no início.

Esta opção é útil quando você tem um símbolo indefinido em seu link, mas não sabe
de onde vem a referência.

-Y caminho
Adicionar caminho para o caminho de pesquisa da biblioteca padrão. Esta opção existe para Solaris
compatibilidade.

-z palavra chave
As palavras-chave reconhecidas são:

combreloc
Combina várias seções realocadas e as classifica para fazer uma pesquisa dinâmica de símbolo
cache possível.

defs
Não permite símbolos indefinidos em arquivos de objeto. Símbolos indefinidos em compartilhado
bibliotecas ainda são permitidas.

execstack
Marca o objeto como exigindo pilha executável.

global
Esta opção só é significativa ao construir um objeto compartilhado. Faz o
símbolos definidos por este objeto compartilhado disponíveis para resolução de símbolo de
bibliotecas carregadas posteriormente.

initfirst
Esta opção só é significativa ao construir um objeto compartilhado. Marca o objeto
de modo que sua inicialização em tempo de execução ocorra antes da inicialização em tempo de execução de
quaisquer outros objetos trazidos para o processo ao mesmo tempo. Da mesma forma o
a finalização do tempo de execução do objeto ocorrerá após a finalização do tempo de execução de
quaisquer outros objetos.

interpor
Marca o objeto que sua tabela de símbolos interpõe antes de todos os símbolos, exceto o
executável principal.

preguiçoso
Ao gerar uma biblioteca executável ou compartilhada, marque-a para informar a dinâmica
vinculador para adiar a resolução da chamada de função para o ponto em que a função é chamada
(ligação lenta), em vez de no tempo de carregamento. A vinculação lenta é o padrão.

loadfltr
Marca o objeto para que seus filtros sejam processados ​​imediatamente no tempo de execução.

muldefs
Permite várias definições.

nocombreloc
Desativa a combinação de várias seções de realocação.

nocopireloco
Desative as variáveis ​​.dynbss geradas pelo vinculador usadas no lugar das variáveis ​​definidas em
bibliotecas compartilhadas. Pode resultar em realocações de texto dinâmicas.

nodefaultlib
Marca o objeto que a busca por dependências deste objeto irá ignorar qualquer
caminhos de pesquisa de biblioteca padrão.

exclusão de nó
Marca que o objeto não deve ser descarregado em tempo de execução.

nodlopen
Marca o objeto não disponível para "abrir".

nodump
Marca que o objeto não pode ser descarregado por "dldump".

noexecstack
Marca o objeto como não exigindo pilha executável.

texto
Trate DT_TEXTREL no objeto compartilhado como erro.

nenhum texto
Não trate DT_TEXTREL no objeto compartilhado como erro.

textoff
Não trate DT_TEXTREL no objeto compartilhado como erro.

Norelro
Não crie um cabeçalho de segmento ELF "PT_GNU_RELRO" no objeto.

agora Ao gerar uma biblioteca executável ou compartilhada, marque-a para informar a dinâmica
vinculador para resolver todos os símbolos quando o programa é iniciado, ou quando o
a biblioteca está vinculada ao uso de dlopen, em vez de adiar a resolução da chamada de função
até o ponto em que a função é chamada pela primeira vez.

origem
Marca que o objeto pode conter $ ORIGIN.

relro
Crie um cabeçalho de segmento ELF "PT_GNU_RELRO" no objeto.

max-page-size =valor
Defina o tamanho máximo da página de emulação para valor.

tamanho de página comum =valor
Defina o tamanho de página comum de emulação para valor.

stack-size =valor
Especifique um tamanho de pilha em um segmento ELF "PT_GNU_STACK". Especificar zero irá
substituir qualquer criação de segmento padrão diferente de zero "PT_GNU_STACK".

bndplt
Sempre gere o prefixo BND nas entradas PLT. Compatível com Linux / x86_64.

noextern-protected-data
Não trate o símbolo de dados protegidos como externos ao construir uma biblioteca compartilhada. Esse
opção substitui o padrão de back-end do vinculador. Pode ser usado para contornar incorretamente
relocações contra símbolos de dados protegidos gerados pelo compilador. Atualizações em
símbolos de dados protegidos por outro módulo não são visíveis para o compartilhamento resultante
biblioteca. Compatível com i386 e x86-64.

call-nop = prefix-addr
call-nop = prefix-nop
call-nop = sufixo-nop
call-nop = prefix-byte
call-nop = sufixo-byte
Especifique o preenchimento "NOP" de 1 byte ao transformar a chamada indireta para um local
função definida, foo, por meio de seu slot GOT. call-nop = prefix-addr gera "0x67
chamar foo ". call-nop = prefix-nop gera "0x90 call foo". call-nop = sufixo-nop
gera "chamar foo 0x90". call-nop = prefix-byte gera "byte chamada foo ".
call-nop = sufixo-byte gera "chamar foo byte". Compatível com i386 e x86_64.

Outras palavras-chave são ignoradas para compatibilidade do Solaris.

-( arquivo -)
--start-grupo arquivo --grupo final
O arquivo deve ser uma lista de arquivos compactados. Eles podem ser arquivos explícitos
nomes, ou -l opções.

Os arquivos especificados são pesquisados ​​repetidamente até que nenhuma nova referência indefinida seja
criada. Normalmente, um arquivo é pesquisado apenas uma vez na ordem em que é especificado
na linha de comando. Se um símbolo nesse arquivo é necessário para resolver um indefinido
símbolo referido por um objeto em um arquivo que aparece mais tarde na linha de comando,
o vinculador não seria capaz de resolver essa referência. Ao agrupar os arquivos,
todos eles são pesquisados ​​repetidamente até que todas as referências possíveis sejam resolvidas.

Usar esta opção tem um custo de desempenho significativo. É melhor usá-lo apenas quando
existem referências circulares inevitáveis ​​entre dois ou mais arquivos.

--accept-unknown-input-arch
--no-accept-unknown-input-arch
Diz ao vinculador para aceitar arquivos de entrada cuja arquitetura não pode ser reconhecida. o
pressuposto é que o usuário sabe o que está fazendo e deseja deliberadamente vincular
nesses arquivos de entrada desconhecidos. Este era o comportamento padrão do vinculador, antes
versão 2.14. O comportamento padrão da versão 2.14 em diante é rejeitar essa entrada
arquivos, e assim o --accept-unknown-input-arch opção foi adicionada para restaurar o antigo
comportamento.

--como necessário
--não conforme necessário
Esta opção afeta as marcas ELF DT_NEEDED para bibliotecas dinâmicas mencionadas no comando
linha após o --como necessário opção. Normalmente, o vinculador adicionará uma tag DT_NEEDED para
cada biblioteca dinâmica mencionada na linha de comando, independentemente de a biblioteca
é realmente necessário ou não. --como necessário faz com que uma tag DT_NEEDED seja emitida apenas para
uma biblioteca que at aquele ponto in a ligação satisfaz um símbolo indefinido não fraco
referência de um arquivo de objeto regular ou, se a biblioteca não for encontrada no DT_NEEDED
listas de outras bibliotecas necessárias, uma referência de símbolo indefinido não fraco de outro
biblioteca dinâmica necessária. Arquivos de objetos ou bibliotecas que aparecem na linha de comando depois de
a biblioteca em questão não afeta se a biblioteca é vista conforme necessário. Isto é
semelhantes às regras para extração de arquivos-objeto de arquivos. --não conforme necessário
restaura o comportamento padrão.

--necessário adicionar
--sem necessidade de adição
Essas duas opções foram descontinuadas devido à semelhança de seus nomes com o
--como necessário e --não conforme necessário opções. Eles foram substituídos por
--copy-dt-needed-entries e --no-copy-dt-needed-entries.

-afirmar palavra chave
Esta opção é ignorada para compatibilidade com SunOS.

-Bdinâmico
-dy
-call_shared
Vincule a bibliotecas dinâmicas. Isso só é significativo em plataformas para as quais
bibliotecas são suportadas. Esta opção é normalmente o padrão em tais plataformas. o
as diferentes variantes desta opção são para compatibilidade com vários sistemas. Você pode
use esta opção várias vezes na linha de comando: ela afeta a pesquisa da biblioteca
-l opções que o seguem.

-Bgrupo
Defina o sinalizador "DF_1_GROUP" na entrada "DT_FLAGS_1" na seção dinâmica. Esse
faz com que o vinculador em tempo de execução manipule pesquisas neste objeto e suas dependências sejam
realizada apenas dentro do grupo. --unresolved-symbols = report-all está implícito. Esse
opção só é significativa em plataformas ELF que suportam bibliotecas compartilhadas.

-Bstatic
-dn
-non_shared
-estático
Não vincule a bibliotecas compartilhadas. Isso só é significativo em plataformas para as quais
bibliotecas compartilhadas são suportadas. As diferentes variantes desta opção são para
compatibilidade com vários sistemas. Você pode usar esta opção várias vezes no
linha de comando: afeta a pesquisa da biblioteca por -l opções que o seguem. Esse
opção também implica --unresolved-symbols = report-all. Esta opção pode ser usada com
-compartilhado. Fazer isso significa que uma biblioteca compartilhada está sendo criada, mas que todos os
as referências externas da biblioteca devem ser resolvidas puxando entradas do estático
bibliotecas.

-Bsimbólico
Ao criar uma biblioteca compartilhada, vincule referências a símbolos globais à definição
dentro da biblioteca compartilhada, se houver. Normalmente, é possível para um programa vinculado
em uma biblioteca compartilhada para substituir a definição dentro da biblioteca compartilhada. Esse
opção também pode ser usada com o --export-dynamic opção, ao criar uma posição
executável independente, para vincular referências a símbolos globais à definição dentro
o executável. Esta opção só é significativa em plataformas ELF que suportam
bibliotecas e executáveis ​​independentes de posição.

-Bfunções-simbólicas
Ao criar uma biblioteca compartilhada, vincule referências a símbolos de função global ao
definição na biblioteca compartilhada, se houver. Esta opção também pode ser usada com o
--export-dynamic opção, ao criar um executável independente de posição, para vincular
referências a símbolos de função global para a definição dentro do executável. Esse
opção só é significativa em plataformas ELF que suportam bibliotecas compartilhadas e posição
executáveis ​​independentes.

--dynamic-list =arquivo de lista dinâmica
Especifique o nome de um arquivo de lista dinâmica para o vinculador. Isso é normalmente usado quando
criando bibliotecas compartilhadas para especificar uma lista de símbolos globais cujas referências
não deve ser vinculado à definição dentro da biblioteca compartilhada, ou criar
executáveis ​​dinamicamente vinculados para especificar uma lista de símbolos que devem ser adicionados
a tabela de símbolos no executável. Esta opção só é significativa em plataformas ELF
que suportam bibliotecas compartilhadas.

O formato da lista dinâmica é o mesmo do nó de versão sem escopo e nó
nome. Ver VERSÃO Para obter mais informações.

--dynamic-list-data
Inclui todos os símbolos de dados globais na lista dinâmica.

--dynamic-list-cpp-new
Fornece a lista dinâmica integrada para operador C ++ new e delete. É principalmente útil
para construir libstdc ++ compartilhada.

--dynamic-list-cpp-typeinfo
Fornece a lista dinâmica integrada para identificação do tipo de tempo de execução C ++.

--check-seções
--no-check-seções
Pergunta ao vinculador não para verificar os endereços das seções após serem atribuídos para ver se
existem sobreposições. Normalmente, o vinculador executará essa verificação e, se encontrar
qualquer sobreposição produzirá mensagens de erro adequadas. O vinculador conhece e
faz concessões para seções em sobreposições. O comportamento padrão pode ser restaurado
usando a opção de linha de comando --check-seções. A sobreposição de seção geralmente não é
verificado para links relocáveis. Você pode forçar a verificação nesse caso usando o
--check-seções opção.

--copy-dt-needed-entries
--no-copy-dt-needed-entries
Esta opção afeta o tratamento de bibliotecas dinâmicas referidas por tags DT_NEEDED
dentro Bibliotecas dinâmicas ELF mencionadas na linha de comando. Normalmente, o vinculador não
adicione uma tag DT_NEEDED ao binário de saída para cada biblioteca mencionada em uma tag DT_NEEDED
em uma biblioteca dinâmica de entrada. Com --copy-dt-needed-entries especificado no comando
linha, no entanto, quaisquer bibliotecas dinâmicas que a seguem terão suas entradas DT_NEEDED
adicionado. O comportamento padrão pode ser restaurado com --no-copy-dt-needed-entries.

Esta opção também afeta a resolução de símbolos em bibliotecas dinâmicas.
Com --copy-dt-needed-entries bibliotecas dinâmicas mencionadas na linha de comando serão
pesquisado recursivamente, seguindo suas tags DT_NEEDED para outras bibliotecas, a fim de
resolver os símbolos exigidos pelo binário de saída. Com a configuração padrão, no entanto, o
a pesquisa de bibliotecas dinâmicas que o seguem irá parar com a biblioteca dinâmica
em si. Nenhum link DT_NEEDED será percorrido para resolver os símbolos.

--cref
Produza uma tabela de referência cruzada. Se um arquivo de mapa de linker estiver sendo gerado, a cruz
a tabela de referência é impressa no arquivo de mapa. Caso contrário, é impresso no padrão
saída.

O formato da tabela é intencionalmente simples, para que possa ser facilmente processado por
um script, se necessário. Os símbolos são impressos, classificados por nome. Para cada símbolo,
uma lista de nomes de arquivos é fornecida. Se o símbolo for definido, o primeiro arquivo listado é o
localização da definição. Se o símbolo for definido como um valor comum, qualquer arquivo
onde isso acontece aparece a seguir. Finalmente, todos os arquivos que fazem referência ao símbolo são
listados.

--no-define-comum
Esta opção inibe a atribuição de endereços a símbolos comuns. O roteiro
o comando "INHIBIT_COMMON_ALLOCATION" tem o mesmo efeito.

O --no-define-comum opção permite desacoplar a decisão de atribuir endereços a
Símbolos comuns da escolha do tipo de arquivo de saída; caso contrário, um não realocável
o tipo de saída força a atribuição de endereços a símbolos comuns. Usando --no-define-comum
permite que símbolos comuns que são referenciados a partir de uma biblioteca compartilhada sejam atribuídos
endereços apenas no programa principal. Isso elimina o espaço duplicado não utilizado no
biblioteca compartilhada, e também evita qualquer possível confusão sobre a resolução de erros
duplicar quando houver muitos módulos dinâmicos com caminhos de pesquisa especializados para
resolução de símbolo de tempo de execução.

--defsym =símbolo=expressão
Crie um símbolo global no arquivo de saída, contendo o endereço absoluto fornecido por
expressão. Você pode usar esta opção quantas vezes forem necessárias para definir vários
símbolos na linha de comando. Uma forma limitada de aritmética é suportada para o
expressão neste contexto: você pode fornecer uma constante hexadecimal ou o nome de um
símbolo existente, ou use "+" e "-" para adicionar ou subtrair constantes hexadecimais ou
símbolos. Se você precisar de expressões mais elaboradas, considere o uso do comando vinculador
linguagem de um script. Observação: não deve haver nenhum espaço em branco entre símbolo, pela
sinal de igual ("=") e expressão.

--demangle [=estilo]
--sem desmembramento
Essas opções controlam se os nomes dos símbolos devem ser desmanchados em mensagens de erro e outros
saída. Quando o linker é instruído a demangle, ele tenta apresentar os nomes dos símbolos em um
forma legível: remove os sublinhados iniciais se eles forem usados ​​pelo arquivo de objeto
formatar e converte nomes de símbolos mutilados C ++ em nomes legíveis pelo usuário. Diferente
compiladores têm estilos de mutilação diferentes. O argumento do estilo de remoção opcional pode
ser usado para escolher um estilo de demangling apropriado para seu compilador. O vinculador irá
demangle por padrão, a menos que a variável de ambiente COLLECT_NO_DEMANGLE está definido. Esses
opções podem ser usadas para substituir o padrão.

-Ifilete
--dynamic-linker =filete
Defina o nome do vinculador dinâmico. Isso só é significativo ao gerar
executáveis ​​ELF vinculados dinamicamente. O vinculador dinâmico padrão normalmente está correto;
não use isso a menos que você saiba o que está fazendo.

--no-dynamic-linker
Ao produzir um arquivo executável, omita a solicitação de um vinculador dinâmico a ser usado em
tempo de carregamento. Isso só é significativo para executáveis ​​ELF que contêm
realocações e geralmente requer um código de ponto de entrada que seja capaz de processar esses
deslocalizações.

--fatal-warnings
--no-fatal-warnings
Trate todos os avisos como erros. O comportamento padrão pode ser restaurado com a opção
--no-fatal-warnings.

--force-exe-sufixo
Certifique-se de que um arquivo de saída tenha um sufixo .exe.

Se um arquivo de saída totalmente vinculado criado com êxito não tiver um ".exe" ou ".dll"
sufixo, esta opção força o vinculador a copiar o arquivo de saída para um com o mesmo nome
com um sufixo ".exe". Esta opção é útil ao usar makefiles Unix não modificados em um
Host do Microsoft Windows, uma vez que algumas versões do Windows não executam uma imagem a menos que
termina com um sufixo ".exe".

--gc-seções
--no-gc-seções
Habilite a coleta de lixo de seções de entrada não utilizadas. É ignorado em alvos que fazem
não suporta esta opção. O comportamento padrão (de não realizar este lixo
coleção) pode ser restaurado especificando --no-gc-seções na linha de comando. Observação
que a coleta de lixo para destinos de formato COFF e PE é suportada, mas o
implementação é atualmente considerada experimental.

--gc-seções decide quais seções de entrada são usadas examinando os símbolos e
deslocalizações. A seção que contém o símbolo de entrada e todas as seções que contêm
símbolos indefinidos na linha de comando serão mantidos, assim como as seções contendo
símbolos referenciados por objetos dinâmicos. Observe que, ao construir bibliotecas compartilhadas, o
o vinculador deve assumir que qualquer símbolo visível é referenciado. Uma vez que este conjunto inicial de
seções foram determinadas, o vinculador marca recursivamente como usado qualquer seção
referenciado por suas realocações. Ver --entrada e --Indefinido.

Esta opção pode ser definida ao fazer um link parcial (habilitado com a opção -r) Nisso
caso a raiz dos símbolos mantidos deve ser explicitamente especificada por um --entrada or
--Indefinido opção ou por um comando "ENTRY" no script do vinculador.

--print-gc-seções
--no-print-gc-seções
Liste todas as seções removidas pela coleta de lixo. A lista é impressa em stderr.
Esta opção só é eficaz se a coleta de lixo tiver sido habilitada por meio do
--gc-seções) opção. O comportamento padrão (de não listar as seções que são
removido) pode ser restaurado especificando --no-print-gc-seções na linha de comando.

--print-output-format
Imprime o nome do formato de saída padrão (talvez influenciado por outra linha de comando
opções). Esta é a string que apareceria em um script de vinculador "OUTPUT_FORMAT"
comando.

--print-memory-usage
Imprimir tamanho usado, tamanho total e tamanho usado de regiões de memória criadas com o MEMÓRIA
comando. Isso é útil em alvos incorporados para ter uma visão rápida da quantidade de
memória. O formato da saída tem um título e uma linha por região. Isto é
legível por humanos e facilmente analisável por ferramentas. Aqui está um exemplo de saída:

Região de memória Tamanho Usado Região Tamanho% Idade Usada
ROM: 256 KB 1 MB 25.00%
RAM: 32 B 2 GB 0.00%

--Socorro
Imprima um resumo das opções de linha de comando na saída padrão e saia.

--alvo-ajuda
Imprima um resumo de todas as opções específicas de destino na saída padrão e saia.

-Map =arquivo de mapa
Imprimir um mapa de links para o arquivo arquivo de mapa. Veja a descrição do -M opção, acima.

--sem-manter-memória
ld normalmente otimiza para velocidade sobre o uso de memória, armazenando em cache as tabelas de símbolos de
arquivos de entrada na memória. Esta opção diz ld em vez de otimizar o uso de memória, por
reler as tabelas de símbolos conforme necessário. Isso pode ser necessário se ld Fica sem
espaço de memória ao vincular um grande executável.

--não-indefinido
-z defs
Relate referências de símbolo não resolvidas de arquivos de objeto regulares. Isso é feito mesmo se
o vinculador está criando uma biblioteca compartilhada não simbólica. O interruptor
- [no-] allow-shlib-undefined controla o comportamento de relatórios não resolvidos
referências encontradas em bibliotecas compartilhadas vinculadas em.

- permitir-definição múltipla
-z muldefs
Normalmente, quando um símbolo é definido várias vezes, o vinculador relatará um fatal
erro. Essas opções permitem várias definições e a primeira definição será usada.

--allow-shlib-undefined
--no-allow-shlib-undefined
Permite ou proíbe símbolos indefinidos em bibliotecas compartilhadas. Esta opção é semelhante a
--não-indefinido exceto que determina o comportamento quando os símbolos indefinidos são
em uma biblioteca compartilhada em vez de um arquivo de objeto regular. Não afeta como
símbolos indefinidos em arquivos de objetos regulares são tratados.

O comportamento padrão é relatar erros para quaisquer símbolos indefinidos referenciados em
bibliotecas compartilhadas se o vinculador estiver sendo usado para criar um executável, mas para permitir
eles se o vinculador estiver sendo usado para criar uma biblioteca compartilhada.

As razões para permitir referências de símbolo indefinidas em bibliotecas compartilhadas especificadas em
tempo de ligação são:

· Uma biblioteca compartilhada especificada no momento do link pode não ser a mesma que é
disponível no momento do carregamento, portanto, o símbolo pode realmente ser resolvido no momento do carregamento.

· Existem alguns sistemas operacionais, por exemplo, BeOS e HPPA, onde símbolos indefinidos em
bibliotecas compartilhadas são normais.

O kernel BeOS, por exemplo, corrige bibliotecas compartilhadas no momento do carregamento para selecionar
a função que for mais apropriada para a arquitetura atual. Isto é
usado, por exemplo, para selecionar dinamicamente uma função memset apropriada.

--no-undefined-version
Normalmente, quando um símbolo tem uma versão indefinida, o vinculador irá ignorá-lo. Esse
opção não permite símbolos com versão indefinida e um erro fatal será emitido
ao invés.

--default-symver
Crie e use uma versão de símbolo padrão (o soname) para símbolos exportados sem versão.

--default-importado-symver
Crie e use uma versão de símbolo padrão (o soname) para símbolos importados não versionados.

--no-warn-mismatch
Normalmente ld dará um erro se você tentar ligar os arquivos de entrada que são
incompatíveis por algum motivo, talvez porque foram compilados para diferentes
processadores ou para diferentes endiannesses. Esta opção diz ld que deveria
silenciosamente permitir tais erros possíveis. Esta opção só deve ser usada com cuidado, em
casos em que você executou alguma ação especial que garante que os erros do vinculador sejam
inadequado.

--no-warn-search-mismatch
Normalmente ld irá dar um aviso se encontrar uma biblioteca incompatível durante uma biblioteca
procurar. Esta opção silencia o aviso.

--no-whole-archive
Desligue o efeito do --arquivo inteiro opção para arquivos compactados subsequentes.

--noinhibit-exec
Retenha o arquivo de saída executável sempre que ainda for utilizável. Normalmente, o vinculador
não produzirá um arquivo de saída se encontrar erros durante o processo de vinculação; isto
sai sem gravar um arquivo de saída quando emite qualquer erro.

-nostdlib
Pesquise apenas os diretórios da biblioteca explicitamente especificados na linha de comando. Biblioteca
diretórios especificados em scripts de linker (incluindo scripts de linker especificados no
linha de comando) são ignorados.

--oformat =Formato de saída
ld pode ser configurado para suportar mais de um tipo de arquivo de objeto. Se seu ld is
configurado desta forma, você pode usar o --oformato opção para especificar o formato binário para
o arquivo de objeto de saída. Mesmo quando ld está configurado para suportar objeto alternativo
formatos, você geralmente não precisa especificar isso, como ld deve ser configurado para produzir
como formato de saída padrão, o formato mais comum em cada máquina. Formato de saída é um
string de texto, o nome de um formato específico compatível com as bibliotecas BFD. (Você pode
liste os formatos binários disponíveis com objdump -i.) O comando de script
"OUTPUT_FORMAT" também pode especificar o formato de saída, mas esta opção o substitui.

-torta
--pic-executável
Crie um executável independente de posição. No momento, isso é compatível apenas com ELF
plataformas. Executáveis ​​independentes de posição são semelhantes a bibliotecas compartilhadas em que
eles são realocados pelo vinculador dinâmico para o endereço virtual que o sistema operacional escolhe para
eles (que podem variar entre as invocações). Como executáveis ​​normais vinculados dinamicamente
eles podem ser executados e os símbolos definidos no executável não podem ser substituídos por
bibliotecas compartilhadas.

-qmagic
Esta opção é ignorada para compatibilidade com Linux.

-Qy Esta opção é ignorada para compatibilidade com SVR4.

--relaxar
- não relaxe
Uma opção com efeitos dependentes da máquina. Esta opção é compatível apenas com alguns
alvos.

Em algumas plataformas, o --relaxar opção executa otimizações globais específicas de destino
que se tornam possíveis quando o vinculador resolve o endereçamento no programa, como
relaxando modos de endereço, sintetizando novas instruções, selecionando uma versão mais curta de
instruções atuais e combinando valores constantes.

Em algumas plataformas, essas otimizações globais de tempo de link podem fazer a depuração simbólica de
o executável resultante impossível. É sabido que este é o caso da Matsushita
Família de processadores MN10200 e MN10300.

Em plataformas onde isso não é suportado, --relaxar é aceito, mas ignorado.

Em plataformas onde --relaxar é aceita a opção - não relaxe pode ser usado para desabilitar
a característica.

--retain-symbols-file =nome do arquivo
Reter os símbolos listados no arquivo nome do arquivo, descartando todos os outros. nome do arquivo
é simplesmente um arquivo simples, com um nome de símbolo por linha. Esta opção é especialmente
útil em ambientes (como VxWorks) onde uma grande tabela de símbolos globais é
acumulado gradualmente, para conservar a memória de tempo de execução.

--retain-symbols-file parece não descartar símbolos indefinidos ou símbolos necessários para
deslocalizações.

Você só pode especificar --retain-symbols-file uma vez na linha de comando. Substitui -s
e -S.

-rpath =dir
Adicione um diretório ao caminho de pesquisa da biblioteca de tempo de execução. Isso é usado ao vincular um ELF
executável com objetos compartilhados. Tudo -rpath argumentos são concatenados e passados ​​para
o vinculador de tempo de execução, que os usa para localizar objetos compartilhados em tempo de execução. o -rpath
opção também é usada ao localizar objetos compartilhados que são necessários para objetos compartilhados
explicitamente incluído no link; veja a descrição do -rpath-link opção. Se
-rpath não é usado ao vincular um executável ELF, o conteúdo do ambiente
a variável "LD_RUN_PATH" será usada se estiver definida.

O -rpath a opção também pode ser usada no SunOS. Por padrão, no SunOS, o vinculador irá
formar um caminho de pesquisa em tempo de execução de todas as -L opções que é dado. Se um -rpath opção
for usado, o caminho de pesquisa em tempo de execução será formado exclusivamente usando o -rpath opções,
ignorando o -L opções. Isso pode ser útil ao usar o gcc, que adiciona muitos -L
opções que podem estar em sistemas de arquivos montados em NFS.

Para compatibilidade com outros linkers ELF, se o -R opção é seguida por um diretório
nome, em vez de um nome de arquivo, é tratado como o -rpath opção.

-rpath-link =dir
Ao usar ELF ou SunOS, uma biblioteca compartilhada pode exigir outra. Isso acontece quando um
O link "ld -shared" inclui uma biblioteca compartilhada como um dos arquivos de entrada.

Quando o vinculador encontra tal dependência ao fazer um não compartilhado, não relocável
link, ele tentará localizar automaticamente a biblioteca compartilhada necessária e incluí-la
no link, se não estiver incluído explicitamente. Nesse caso, o -rpath-link opção
especifica o primeiro conjunto de diretórios a pesquisar. o -rpath-link opção pode especificar
uma sequência de nomes de diretório especificando uma lista de nomes separados por
dois pontos ou aparecendo várias vezes.

Esta opção deve ser usada com cuidado, pois substitui o caminho de pesquisa que pode ter
foi compilado em uma biblioteca compartilhada. Nesse caso, é possível usar
involuntariamente, um caminho de pesquisa diferente do que o vinculador de tempo de execução faria.

O vinculador usa os seguintes caminhos de pesquisa para localizar as bibliotecas compartilhadas necessárias:

1. Quaisquer diretórios especificados por -rpath-link opções.

2. Quaisquer diretórios especificados por -rpath opções. A diferença entre -rpath e
-rpath-link são os diretórios especificados por -rpath opções estão incluídas no
executável e usado em tempo de execução, enquanto o -rpath-link opção só é eficaz
no momento do link. Procurando -rpath desta forma, só é suportado por linkers nativos e
reticuladores que foram configurados com o --with-sysroot opção.

3. Em um sistema ELF, para ligantes nativos, se o -rpath e -rpath-link opções eram
não usado, pesquise o conteúdo da variável de ambiente "LD_RUN_PATH".

4. No SunOS, se o -rpath opção não foi usada, pesquise quaisquer diretórios especificados
utilização -L opções.

5. Para um vinculador nativo, pesquise o conteúdo da variável de ambiente
"LD_LIBRARY_PATH".

6. Para um vinculador ELF nativo, os diretórios em "DT_RUNPATH" ou "DT_RPATH" de um compartilhamento
biblioteca são pesquisadas por bibliotecas compartilhadas necessárias para ela. As entradas "DT_RPATH" são
ignorado se existirem entradas "DT_RUNPATH".

7. Os diretórios padrão, normalmente / lib e / usr / lib.

8. Para um vinculador nativo em um sistema ELF, se o arquivo /etc/ld.so.conf existe, a lista
de diretórios encontrados nesse arquivo.

Se a biblioteca compartilhada necessária não for encontrada, o vinculador emitirá um aviso e
continue com o link.

-compartilhado
- Compartilhável
Crie uma biblioteca compartilhada. No momento, isso é compatível apenas com ELF, XCOFF e SunOS
plataformas. No SunOS, o vinculador criará automaticamente uma biblioteca compartilhada se o -e
opção não é usada e existem símbolos indefinidos no link.

--sort-comum
--sort-common = ascendente
--sort-common = descendente
Esta opção diz ld para classificar os símbolos comuns por alinhamento em ordem crescente ou
ordem decrescente quando ele os coloca nas seções de saída apropriadas. O símbolo
alinhamentos considerados são dezesseis bytes ou mais, oito bytes, quatro bytes, dois bytes e
um byte. Isso evita lacunas entre os símbolos devido a restrições de alinhamento. Se não
a ordem de classificação é especificada e, em seguida, a ordem decrescente é assumida.

--sort-section = name
Esta opção aplicará "SORT_BY_NAME" a todos os padrões de seção curinga no vinculador
script.

--sort-section = alinhamento
Esta opção irá aplicar "SORT_BY_ALIGNMENT" a todos os padrões de seção curinga no
script de vinculador.

--split-by-file [=tamanho]
Semelhante a --split-by-reloc mas cria uma nova seção de saída para cada arquivo de entrada quando
tamanho é atingido. tamanho o padrão é o tamanho 1 se não for fornecido.

--split-by-reloc [=contar]
Tenta criar seções extras no arquivo de saída para que nenhuma seção de saída única em
o arquivo contém mais de contar deslocalizações. Isso é útil ao gerar grandes
arquivos relocáveis ​​para download em certos kernels em tempo real com o objeto COFF
formato de arquivo; uma vez que COFF não pode representar mais de 65535 realocações em um único
seção. Observe que isso não funcionará com formatos de arquivo de objeto que não
apoiar seções arbitrárias. O vinculador não dividirá seções de entrada individuais
para redistribuição, portanto, se uma única seção de entrada contiver mais de contar deslocalizações
uma seção de saída conterá tantas realocações. contar o padrão é um valor de
32768.

--Estatísticas
Calcular e exibir estatísticas sobre a operação do vinculador, como execução
tempo e uso de memória.

--sysroot =anuário
Utilização anuário como a localização do sysroot, substituindo o padrão de tempo de configuração.
Esta opção só é compatível com vinculadores que foram configurados usando --with-sysroot.

--formato tradicional
Para alguns alvos, a saída de ld é diferente em alguns aspectos da saída de alguns
vinculador existente. Esta troca requer ld para usar o formato tradicional.

Por exemplo, no SunOS, ld combina entradas duplicadas na tabela de sequência de símbolos. Esse
pode reduzir o tamanho de um arquivo de saída com informações de depuração completas em mais de 30
por cento. Infelizmente, o programa SunOS "dbx" não pode ler o programa resultante
("gdb" não tem problemas). o --formato tradicional mudar diz ld não combinar
entradas duplicadas.

--section-start =Nome da Seção=org
Localize uma seção no arquivo de saída no endereço absoluto fornecido por org. Você pode usar
esta opção quantas vezes forem necessárias para localizar várias seções no comando
linha. org deve ser um único inteiro hexadecimal; para compatibilidade com outros linkers,
você pode omitir o líder 0x geralmente associado a valores hexadecimais. Observação:
não deve haver nenhum espaço em branco entre Nome da Seção, o sinal de igual ("=") e org.

-Tbss =org
-Tdata =org
-Ttexto =org
Igual a --section-start, com ".bss", ".data" ou ".text" como o Nome da Seção.

-Ttext-segment =org
Ao criar um executável ELF, ele definirá o endereço do primeiro byte do texto
segmento.

-Trodata-segment =org
Ao criar um executável ELF ou objeto compartilhado para um destino onde os dados somente leitura
está em seu próprio segmento separado do texto executável, ele irá definir o endereço de
o primeiro byte do segmento de dados somente leitura.

-Tldata-segment =org
Ao criar um executável ELF ou objeto compartilhado para o modelo de memória médio x86-64,
irá definir o endereço do primeiro byte do segmento ldata.

--unresolved-symbols =método
Determine como lidar com símbolos não resolvidos. Existem quatro valores possíveis para
método:

ignore tudo
Não relate nenhum símbolo não resolvido.

relatar tudo
Relate todos os símbolos não resolvidos. Este é o padrão.

ignore-in-object-files
Relate símbolos não resolvidos contidos em bibliotecas compartilhadas, mas ignore-os
se eles vierem de arquivos de objetos regulares.

ignore-in-shared-libs
Relate símbolos não resolvidos que vêm de arquivos de objetos regulares, mas ignore-os se
eles vêm de bibliotecas compartilhadas. Isso pode ser útil ao criar uma dinâmica
binário e é sabido que todas as bibliotecas compartilhadas que ele deveria estar referenciando
estão incluídos na linha de comando do vinculador.

O comportamento das bibliotecas compartilhadas por conta própria também pode ser controlado pelo
- [no-] allow-shlib-undefined opção.

Normalmente, o vinculador irá gerar uma mensagem de erro para cada símbolo não resolvido relatado
mas a opção --warn-unresolved-symbols pode alterar isso para um aviso.

--dll-verbose
--verbose [=NÚMERO]
Exibir o número da versão para ld e liste as emulações do vinculador suportadas. Exibição
quais arquivos de entrada podem e não podem ser abertos. Exibir o script do vinculador usado por
o vinculador. Se o opcional NÚMERO argumento> 1, o status do símbolo do plugin também será
exibido.

--version-script =arquivo de script de versão
Especifique o nome de um script de versão para o vinculador. Isso é normalmente usado quando
criar bibliotecas compartilhadas para especificar informações adicionais sobre a versão
hierarquia para a biblioteca que está sendo criada. Esta opção só é totalmente compatível com ELF
plataformas que suportam bibliotecas compartilhadas; Vejo VERSÃO. É parcialmente compatível com
Plataformas PE, que podem usar scripts de versão para filtrar a visibilidade do símbolo na exportação automática
modo: quaisquer símbolos marcados local no script de versão não será exportado.

--aviso-comum
Avisa quando um símbolo comum é combinado com outro símbolo comum ou com um símbolo
definição. Os vinculadores Unix permitem essa prática um tanto desleixada, mas os vinculadores em alguns
outros sistemas operacionais não. Esta opção permite que você encontre problemas potenciais
de combinar símbolos globais. Infelizmente, algumas bibliotecas C usam essa prática, então
você pode receber alguns avisos sobre símbolos nas bibliotecas, bem como em seus programas.

Existem três tipos de símbolos globais, ilustrados aqui por exemplos em C:

int i = 1;
Uma definição, que vai na seção de dados inicializados do arquivo de saída.

externo int i;
Uma referência indefinida, que não aloca espaço. Deve haver um
definição ou um símbolo comum para a variável em algum lugar.

int i;
Um símbolo comum. Se houver apenas (um ou mais) símbolos comuns para uma variável,
ele vai para a área de dados não inicializada do arquivo de saída. O vinculador mescla
vários símbolos comuns para a mesma variável em um único símbolo. Se eles são
de tamanhos diferentes, escolhe o maior. O vinculador vira um símbolo comum
em uma declaração, se houver uma definição da mesma variável.

O --aviso-comum opção pode produzir cinco tipos de avisos. Cada aviso consiste em
um par de linhas: a primeira descreve o símbolo que acabou de encontrar, e a segunda
descreve o símbolo anterior encontrado com o mesmo nome. Um ou ambos os dois
os símbolos serão um símbolo comum.

1. Transformar um símbolo comum em referência, pois já existe uma definição
para o símbolo.

( ): aviso: comum de ` '
substituído por definição
( ): aviso: definido aqui

2. Transformar um símbolo comum em uma referência, porque uma definição posterior para o
o símbolo é encontrado. Este é o mesmo caso anterior, exceto que o
os símbolos são encontrados em uma ordem diferente.

( ): aviso: definição de ` '
substituindo comum
( ): aviso: comum está aqui

3. Mesclar um símbolo comum com um símbolo comum anterior do mesmo tamanho.

( ): aviso: múltiplo comum
de ` '
( ): aviso: anterior comum está aqui

4. Mesclar um símbolo comum com um símbolo comum anterior maior.

( ): aviso: comum de ` '
substituído por um comum maior
( ): aviso: maior comum está aqui

5. Mesclar um símbolo comum com um símbolo comum menor anterior. Esse é o mesmo
como no caso anterior, exceto que os símbolos são encontrados em um diferente
ordem.

( ): aviso: comum de ` '
substituindo o comum menor
( ): aviso: menor comum está aqui

--warn-construtores
Avisa se algum construtor global é usado. Isso só é útil para alguns arquivos de objeto
formatos. Para formatos como COFF ou ELF, o vinculador não pode detectar o uso de global
construtores.

--warn-multiple-gp
Avisa se vários valores de ponteiro global são necessários no arquivo de saída. Este é apenas
significativo para determinados processadores, como o Alpha. Especificamente, alguns processadores
coloque constantes de grande valor em uma seção especial. Um registro especial (o global
ponteiro) aponta para o meio desta seção, para que as constantes possam ser carregadas
eficientemente por meio de um modo de endereçamento relativo de registro de base. Desde o deslocamento na base
modo relativo de registro é fixo e relativamente pequeno (por exemplo, 16 bits), isso limita o
tamanho máximo do pool constante. Assim, em grandes programas, muitas vezes é necessário
use vários valores de ponteiro globais para poder abordar todos os possíveis
constantes. Esta opção faz com que um aviso seja emitido sempre que ocorrer esse caso.

--aviso uma vez
Avisar apenas uma vez para cada símbolo indefinido, ao invés de uma vez por módulo que se refere a
.

--warn-section-align
Avisa se o endereço de uma seção de saída é alterado devido ao alinhamento. Tipicamente,
o alinhamento será definido por uma seção de entrada. O endereço só será alterado se
não explicitamente especificado; isto é, se o comando "SEÇÕES" não especifica um início
endereço para a seção.

--warn-shared-textrel
Avisa se o vinculador adiciona um DT_TEXTREL a um objeto compartilhado.

--warn-alternate-em
Avisa se um objeto possui um código de máquina ELF alternativo.

--warn-unresolved-symbols
Se o vinculador vai relatar um símbolo não resolvido (veja a opção
- símbolos não resolvidos) normalmente gerará um erro. Esta opção torna
em vez disso, gere um aviso.

- símbolos de erro não resolvidos
Isso restaura o comportamento padrão do vinculador de gerar erros ao relatar
símbolos não resolvidos.

--arquivo inteiro
Para cada arquivo mencionado na linha de comando após o --arquivo inteiro opção,
incluir cada arquivo de objeto no arquivo no link, em vez de pesquisar o
arquivo para os arquivos de objeto necessários. Isso normalmente é usado para transformar um arquivo de arquivo
em uma biblioteca compartilhada, forçando cada objeto a ser incluído no compartilhamento
biblioteca. Esta opção pode ser usada mais de uma vez.

Duas notas ao usar esta opção do gcc: Primeiro, o gcc não conhece esta opção,
então você tem que usar -Wl, -whole-archive. Em segundo lugar, não se esqueça de usar
-Wl, -no-whole-archive depois de sua lista de arquivos, porque o gcc irá adicionar sua própria lista
de arquivos para o seu link e você pode não querer que este sinalizador os afete também.

--wrap =símbolo
Use uma função de empacotador para símbolo. Qualquer referência indefinida a símbolo será resolvido
embrulhar_símbolo". Qualquer referência indefinida a "__real_símbolo" será resolvido para
símbolo.

Isso pode ser usado para fornecer um invólucro para uma função do sistema. A função wrapper
deve ser chamado de "__wrap_símbolo". Se deseja chamar a função do sistema, deve
ligue para "__real_símbolo".

Aqui está um exemplo trivial:

vazio *
__wrap_malloc (tamanho_t c)
{
printf ("malloc chamado com% zu \ n", c);
return __real_malloc (c);
}

Se você vincular outro código a este arquivo usando --enrolar Malloc, então todas as chamadas para "malloc"
irá chamar a função "__wrap_malloc" em vez disso. A chamada para "__real_malloc" em
"__wrap_malloc" irá chamar a função "malloc" real.

Você pode desejar fornecer uma função "__real_malloc" também, para que os links sem o
--enrolar opção terá sucesso. Se você fizer isso, você não deve colocar a definição de
"__real_malloc" no mesmo arquivo que "__wrap_malloc"; se você fizer isso, o montador pode
resolva a chamada antes que o vinculador tenha a chance de agrupá-la em "malloc".

--eh-frame-hdr
Solicite a criação da seção ".eh_frame_hdr" e do cabeçalho do segmento ELF "PT_GNU_EH_FRAME".

--no-ld-generated-unwind-info
Solicite a criação de ".eh_frame" informações de desenrolamento para seções de código geradas pelo linker, como
PLT. Esta opção está ativada por padrão se as informações de desenrolamento geradas pelo vinculador forem suportadas.

--enable-new-dtags
--disable-new-dtags
Este vinculador pode criar as novas tags dinâmicas em ELF. Mas os sistemas ELF mais antigos podem não
compreendê-los. Se você especificar --enable-new-dtags, as novas tags dinâmicas serão
criados conforme necessário e as tags dinâmicas mais antigas serão omitidas. Se você especificar
--disable-new-dtags, nenhuma nova tag dinâmica será criada. Por padrão, a nova dinâmica
tags não são criadas. Observe que essas opções estão disponíveis apenas para sistemas ELF.

--hash-size =número
Defina o tamanho padrão das tabelas de hash do vinculador para um número primo próximo a número.
Aumentar esse valor pode reduzir o tempo que o vinculador leva para realizar seu
tarefas, às custas de aumentar os requisitos de memória do vinculador. de forma similar
reduzir esse valor pode reduzir os requisitos de memória em detrimento da velocidade.

- estilo hash =estilo
Defina o tipo de tabela (s) hash do vinculador. estilo pode ser "sysv" para ELF clássico
seção ".hash", seção "gnu" para o novo estilo GNU ".gnu.hash" ou "ambos" para ambos os
clássico ELF ".hash" e novo estilo GNU ".gnu.hash" tabelas de hash. O padrão é "sysv".

--compress-debug-Section = none
--compress-debug-seções = zlib
--compress-debug-Section = zlib-gnu
--compress-debug-Section = zlib-gabi
Em plataformas ELF, essas opções controlam como as seções de depuração DWARF são compactadas usando
zlib. --compress-debug-Section = none não compacta seções de depuração DWARF.
--compress-debug-Section = zlib-gnu compacta seções de depuração DWARF e renomeia depuração
nomes de seção para começar .zdebug em vez de .depurar. --compress-debug-seções = zlib
e --compress-debug-Section = zlib-gabi comprimir seções de depuração DWARF com
SHF_COMPRESSED da ELF ABI. O comportamento padrão varia dependendo do
alvo envolvido e as opções de configuração usadas para construir o conjunto de ferramentas. O padrão
pode ser determinado examinando a saída do linker --Socorro opção.

--reduce-memory-overheads
Esta opção reduz os requisitos de memória em tempo de execução ld, às custas de vinculação
Rapidez. Isso foi introduzido para selecionar o antigo algoritmo O (n ^ 2) para o arquivo de mapa de link
geração, em vez do novo algoritmo O (n), que usa cerca de 40% a mais de memória para
armazenamento de símbolos.

Outro efeito da mudança é definir o tamanho da tabela de hash padrão para 1021, que
novamente economiza memória ao custo de prolongar o tempo de execução do vinculador. Isso não está feito
entretanto se o - tamanho do hash interruptor foi usado.

O --reduce-memory-overheads interruptor também pode ser usado para permitir outras compensações em
versões futuras do vinculador.

--build-id
--build-id =estilo
Solicite a criação de uma seção de notas ELF ".note.gnu.build-id" ou um COFF ".buildid"
seção. O conteúdo da nota são bits únicos que identificam este arquivo vinculado.
estilo pode ser "uuid" para usar 128 bits aleatórios, "sha1" para usar um hash SHA160 de 1 bits no
partes normativas do conteúdo de saída, "md5" para usar um hash MD128 de 5 bits no
partes normativas do conteúdo de saída, ou "0xhexstring " usar uma string de bits escolhida
especificado como um número par de dígitos hexadecimais ("-" e ":" caracteres entre
pares de dígitos são ignorados). Se estilo é omitido, "sha1" é usado.

Os estilos "md5" e "sha1" produzem um identificador que é sempre o mesmo em um
arquivo de saída idêntico, mas será único entre todos os arquivos de saída não idênticos. Isto é
não se destina a ser comparado como uma soma de verificação para o conteúdo do arquivo. Um arquivo vinculado pode
ser alterado posteriormente por outras ferramentas, mas a sequência de bits de ID de construção identificando o original
arquivo vinculado não muda.

Passando "nenhum" para estilo desativa a configuração de qualquer opção "--build-id" anterior
a linha de comando.

O linker i386 PE suporta o -compartilhado opção, o que faz com que a saída seja uma
biblioteca vinculada dinamicamente (DLL) em vez de um executável normal. Você deve nomear o
imprima "* .dll" ao usar esta opção. Além disso, o vinculador suporta totalmente o
arquivos padrão "* .def", que podem ser especificados na linha de comando do vinculador como um objeto
arquivo (na verdade, ele deve preceder os arquivos dos quais exporta os símbolos, para garantir que eles obtenham
vinculado, assim como um arquivo de objeto normal).

Além das opções comuns a todos os destinos, o linker PE i386 oferece suporte adicional
opções de linha de comando que são específicas para o alvo PE i386. Opções que assumem valores
podem ser separados de seus valores por um espaço ou um sinal de igual.

--add-stdcall-alias
Se fornecidos, os símbolos com um sufixo stdcall (@nn) serão exportados no estado em que se encontram e também com o
sufixo removido. [Esta opção é específica para a porta i386 PE de destino do vinculador]

--arquivo-base filete
Utilização filete como o nome de um arquivo no qual salvar os endereços de base de todos os
realocações necessárias para gerar DLLs com dlltool. [Este é um i386 PE específico
opção]

--dll
Crie uma DLL em vez de um executável normal. Você também pode usar -compartilhado ou especifique um
"LIBRARY" em um determinado arquivo ".def". [Esta opção é específica para o i386 PE direcionado
porta do linker]

--enable-long-section-names
--disable-long-section-names
As variantes PE do formato do objeto COFF adicionam uma extensão que permite o uso de
nomes de seção com mais de oito caracteres, o limite normal para COFF. Por padrão,
esses nomes são permitidos apenas em arquivos de objeto, uma vez que imagens executáveis ​​totalmente vinculadas não
carregue a tabela de string COFF necessária para suportar os nomes mais longos. Como uma extensão GNU,
é possível permitir seu uso em imagens executáveis ​​também, ou (provavelmente
inutilmente!) desautorize-o em arquivos de objeto, usando essas duas opções. Executável
imagens geradas com esses nomes de seção longos são ligeiramente fora do padrão, carregando como
eles fazem uma tabela de strings, e podem gerar resultados confusos quando examinados com não GNU
Ferramentas com reconhecimento de PE, como visualizadores de arquivos e dumpers. No entanto, o GDB depende do uso de
Nomes de seção longos de PE para localizar seções de informações de depuração do Dwarf-2 em um executável
imagem em tempo de execução e, portanto, se nenhuma opção for especificada na linha de comando, ld precisarão
habilitar nomes de seção longos, substituindo o comportamento padrão e tecnicamente correto,
quando encontra a presença de informações de depuração ao vincular uma imagem executável e
não removendo símbolos. [Esta opção é válida para todas as portas PE direcionadas do vinculador]

--enable-stdcall-fixup
--disable-stdcall-fixup
Se o link encontrar um símbolo que não pode resolver, ele tentará fazer "fuzzy
vinculando "procurando outro símbolo definido que difere apenas no formato do
nome do símbolo (cdecl vs stdcall) e resolverá esse símbolo vinculando à correspondência.
Por exemplo, o símbolo indefinido "_foo" pode estar vinculado à função "_foo @ 12", ou
o símbolo indefinido "_bar @ 16" pode estar vinculado à função "_bar". Quando o
o vinculador faz isso, ele imprime um aviso, uma vez que normalmente deveria ter falhado ao vincular,
mas às vezes bibliotecas de importação geradas a partir de dlls de terceiros podem precisar deste recurso
para ser utilizável. Se você especificar --enable-stdcall-fixup, este recurso está totalmente ativado
e os avisos não são impressos. Se você especificar --disable-stdcall-fixup, este recurso é
desativado e tais incompatibilidades são consideradas erros. [Esta opção é específica para
a porta i386 PE direcionada do linker]

--leading-underscore
- sem sublinhado
Para a maioria dos alvos, o prefixo de símbolo padrão é um sublinhado e é definido no alvo
Descrição. Com esta opção é possível desabilitar / habilitar o sublinhado padrão
símbolo-prefixo.

--export-all-symbols
Se fornecidos, todos os símbolos globais nos objetos usados ​​para construir uma DLL serão exportados por
a DLL. Observe que este é o padrão, caso contrário, não seria exportado
símbolos. Quando os símbolos são exportados explicitamente por meio de arquivos DEF ou exportados implicitamente
por meio de atributos de função, o padrão é não exportar mais nada, a menos que esta opção
é dada. Observe que os símbolos "DllMain @ 12", "DllEntryPoint @ 0",
"DllMainCRTStartup @ 12" e "impure_ptr" não serão exportados automaticamente. Também,
os símbolos importados de outras DLLs não serão exportados novamente, nem os símbolos que especificam
o layout interno da DLL, como aqueles que começam com "_head_" ou terminam com
"_iname". Além disso, nenhum símbolo de "libgcc", "libstd ++", "libmingw32" ou
"crtX.o" será exportado. Símbolos cujos nomes começam com "__rtti_" ou "__builtin_"
não será exportado, para ajudar com DLLs C ++. Finalmente, há uma extensa lista de
símbolos cygwin-privados que não são exportados (obviamente, isso se aplica ao construir
DLLs para destinos cygwin). Essas exclusões cygwin são: "_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 "amb". [Esta opção é específica para o i386 PE direcionado
porta do linker]

--excluir-símbolos símbolo,símbolo, ...
Especifica uma lista de símbolos que não devem ser exportados automaticamente. O símbolo
os nomes podem ser delimitados por vírgulas ou dois pontos. [Esta opção é específica para i386 PE
porta de destino do linker]

--excluir-todos os símbolos
Especifica que nenhum símbolo deve ser exportado automaticamente. [Esta opção é específica para
a porta i386 PE direcionada do linker]

--file-align
Especifique o alinhamento do arquivo. As seções no arquivo sempre começarão nos deslocamentos do arquivo
que são múltiplos deste número. O padrão é 512. [Esta opção é específica
para a porta i386 PE de destino do linker]

--heap reserva
--heap reserva,cometer
Especifique o número de bytes de memória a serem reservados (e opcionalmente confirmados) a serem usados ​​como
heap para este programa. O padrão é 1 MB reservado, 4K confirmado. [Esta opção é
específico para a porta i386 PE de destino do linker]

- base de imagem valor
Utilização valor como o endereço base do seu programa ou dll. Esta é a memória mais baixa
local que será usado quando seu programa ou dll for carregado. Para reduzir a necessidade de
realocar e melhorar o desempenho de suas dlls, cada uma deve ter um endereço de base exclusivo
e não se sobrepõe a nenhuma outra dll. O padrão é 0x400000 para executáveis ​​e
0x10000000 para dlls. [Esta opção é específica para a porta i386 PE de destino do
vinculador]

--kill-at
Se fornecido, os sufixos stdcall (@nn) serão retirados dos símbolos antes de serem
exportado. [Esta opção é específica para a porta i386 PE de destino do vinculador]

--consciente de grandes endereços
Se fornecido, o bit apropriado no campo "Características" do cabeçalho COFF é definido
para indicar que este executável oferece suporte a endereços virtuais maiores que 2 gigabytes.
Deve ser usado em conjunto com / 3GB ou / USERVA =valor megabytes trocados
a seção "[sistemas operacionais]" do BOOT.INI. Caso contrário, este bit não tem efeito.
[Esta opção é específica para portas PE direcionadas do vinculador]

--disable-large-address-aware
Reverte o efeito de um anterior --consciente de grandes endereços opção. Isso é útil se
--consciente de grandes endereços é sempre definido pelo driver do compilador (por exemplo, Cygwin gcc) e o
executável não oferece suporte a endereços virtuais maiores que 2 gigabytes. [Esta opção
é específico para portas de PE do linker]

--major-image-version valor
Define o maior número da "versão da imagem". O padrão é 1. [Esta opção é
específico para a porta i386 PE de destino do linker]

--major-os-version valor
Define o número principal da "versão do sistema operacional". O padrão é 4. [Esta opção é específica
para a porta i386 PE de destino do linker]

--major-subsystem-version valor
Define o maior número da "versão do subsistema". O padrão é 4. [Esta opção é
específico para a porta i386 PE de destino do linker]

--menor-image-version valor
Define o número menor da "versão da imagem". O padrão é 0. [Esta opção é
específico para a porta i386 PE de destino do linker]

--minor-os-version valor
Define o número menor da "versão do sistema operacional". O padrão é 0. [Esta opção é específica
para a porta i386 PE de destino do linker]

--minor-subsystem-version valor
Define o número menor da "versão do subsistema". O padrão é 0. [Esta opção é
específico para a porta i386 PE de destino do linker]

--def de saída filete
O vinculador criará o arquivo filete que conterá um arquivo DEF correspondente a
a DLL que o vinculador está gerando. Este arquivo DEF (que deve ser denominado "* .def") pode
ser usado para criar uma biblioteca de importação com "dlltool" ou pode ser usado como uma referência para
símbolos exportados automática ou implicitamente. [Esta opção é específica para i386 PE
porta de destino do linker]

--out-implib filete
O vinculador criará o arquivo filete que conterá uma biblioteca de importação correspondente a
a DLL que o vinculador está gerando. Este lib de importação (que deve ser chamado de "* .dll.a" ou
"* .a" pode ser usado para vincular clientes à DLL gerada; este comportamento o torna
possível pular uma etapa separada de criação da biblioteca de importação "dlltool". [Esta opção é
específico para a porta i386 PE de destino do linker]

--enable-auto-image-base
--enable-auto-image-base =valor
Escolha automaticamente a base de imagem para DLLs, opcionalmente começando com base valor,
a menos que um seja especificado usando o argumento "--image-base". Usando um hash gerado
do dllname para criar bases de imagens exclusivas para cada DLL, colisões na memória e
são evitadas relocações que podem atrasar a execução do programa. [Esta opção é específica
para a porta i386 PE de destino do linker]

--disable-auto-image-base
Não gere automaticamente uma base de imagem exclusiva. Se não houver nenhum especificado pelo usuário
image base ("--image-base") então use o padrão da plataforma. [Esta opção é específica
para a porta i386 PE de destino do linker]

--dll-prefixo de pesquisa corda
Ao vincular dinamicamente a uma dll sem uma biblioteca de importação, pesquise
" .dll "em preferência a" lib .dll ". Este comportamento permite
distinção fácil entre DLLs construídas para as várias "subplataformas": nativo, cygwin,
uwin, pw, etc. Por exemplo, as DLLs do cygwin geralmente usam "--dll-search-prefix = cyg".
[Esta opção é específica para a porta i386 PE de destino do vinculador]

--enable-auto-import
Faça ligações sofisticadas de "_symbol" a "__imp__symbol" para importações de DADOS de DLLs,
e criar os símbolos de conversão necessários ao construir as bibliotecas de importação com
essas exportações de dados. Nota: O uso da extensão de 'importação automática' fará com que o texto
seção do arquivo de imagem a ser gravada. Isso não está em conformidade com o PE-COFF
especificação de formato publicada pela Microsoft.

Observação - o uso da extensão 'importação automática' também causará dados somente leitura, o que causaria
normalmente é colocado na seção .rdata para ser colocado na seção .data
em vez de. Isso é para solucionar um problema com constantes que é descrito
aqui: http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

Usar a 'importação automática' geralmente 'simplesmente funciona' - mas às vezes você pode ver isso
mensagem:

"variável ' ' não pode ser importada automaticamente. Por favor, leia a documentação para ld's
"--enable-auto-import" para obter detalhes. "

Esta mensagem ocorre quando alguma (sub) expressão acessa um endereço dado por último por
a soma de duas constantes (as tabelas de importação do Win32 permitem apenas uma). Instâncias onde esta
pode ocorrer incluir acessos a campos de membros de variáveis ​​de estrutura importados de uma DLL,
bem como usar um índice constante em uma variável de matriz importada de uma DLL. Algum
variável com várias palavras (arrays, structs, long long, etc) pode acionar essa condição de erro.
No entanto, independentemente do tipo de dados exato da variável exportada problemática, ld irá
sempre detectá-lo, emitir o aviso e sair.

Existem várias maneiras de resolver essa dificuldade, independentemente do tipo de dados do
variável exportada:

Uma maneira é usar a opção --enable-runtime-pseudo-reloc. Isso deixa a tarefa de
ajustando referências em seu código de cliente para o ambiente de tempo de execução, para que este método funcione
somente quando o ambiente de tempo de execução oferece suporte a esse recurso.

Uma segunda solução é forçar uma das 'constantes' a ser uma variável - isto é,
desconhecido e não otimizado em tempo de compilação. Para matrizes, existem duas possibilidades:
a) tornar o indexee (o endereço do array) uma variável, ou b) fazer o índice 'constante'
uma variável. Assim:

tipo externo extern_array [];
extern_array [1] ->
{tipo volátil * t = extern_array; t [1]}

or

tipo externo extern_array [];
extern_array [1] ->
{int t volátil = 1; extern_array [t]}

Para structs (e a maioria dos outros tipos de dados com várias palavras), a única opção é fazer o
a própria estrutura (ou long long, ou ...) variável:

extern struct s extern_struct;
extern_struct.field ->
{estrutura volátil s * t = & extern_struct; t-> campo}

or

extern long long extern_ll;
extern_ll ->
{volátil longo longo * local_ll = & extern_ll; * local_ll}

Um terceiro método de lidar com essa dificuldade é abandonar a 'importação automática' para o
símbolo ofensivo e marque-o com "__declspec (dllimport)". No entanto, na prática,
requer o uso de #defines em tempo de compilação para indicar se você está construindo uma DLL,
construir o código do cliente que se vinculará à DLL, ou simplesmente construir / vincular a um estático
biblioteca. Ao fazer a escolha entre os vários métodos de resolver o problema 'direto
endereço com deslocamento constante 'problema, você deve considerar o uso típico do mundo real:

Original:

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

Solução 1:

--foo.h
extern int arr [];
--foo.c
#include "foo.h"
void main (int argc, char ** argv) {
/ * Esta solução alternativa é para win32 e cygwin; não "otimize" * /
volátil int * parr = arr;
printf ("% d \ n", parr [1]);
}

Solução 2:

--foo.h
/ * Observação: a exportação automática é assumida (sem __declspec (dllexport)) * /
#if (definido (_WIN32) || definido (__ CYGWIN__)) && \
! (definido (FOO_BUILD_DLL) || definido (FOO_STATIC))
#define FOO_IMPORT __declspec (dllimport)
#else
#define FOO_IMPORT
#fim se
extern FOO_IMPORT int arr [];
--foo.c
#include "foo.h"
void main (int argc, char ** argv) {
printf ("% d \ n", arr [1]);
}

Uma quarta maneira de evitar este problema é recodificar sua biblioteca para usar um funcional
interface em vez de uma interface de dados para as variáveis ​​ofensivas (por exemplo set_foo () e
get_foo () funções de acesso). [Esta opção é específica para a porta i386 PE de destino
do vinculador]

--disable-auto-import
Não tente fazer uma ligação sofisticada de "_symbol" a "__imp__symbol" para DATA
importações de DLLs. [Esta opção é específica para a porta i386 PE de destino do
vinculador]

--enable-runtime-pseudo-reloc
Se o seu código contém expressões descritas na seção --enable-auto-import, ou seja,
Importações de dados de DLL com deslocamento diferente de zero, esta opção criará um vetor de
'pseudo relocações de tempo de execução' que podem ser usados ​​pelo ambiente de tempo de execução para ajustar
referências a esses dados em seu código de cliente. [Esta opção é específica para i386 PE
porta de destino do linker]

--disable-runtime-pseudo-reloc
Não crie pseudo relocações para importações de DADOS de deslocamento diferente de zero de DLLs. [Esse
opção é específica para a porta i386 PE de destino do linker]

--enable-extra-pe-debug
Mostra informações de depuração adicionais relacionadas à conversão automática de símbolos de importação. [Esta opção é
específico para a porta i386 PE de destino do linker]

--section-align
Define o alinhamento da seção. As seções na memória sempre começarão em endereços que
são múltiplos deste número. O padrão é 0x1000. [Esta opção é específica para o
i386 PE porta de destino do linker]

--pilha reserva
--pilha reserva,cometer
Especifique o número de bytes de memória a serem reservados (e opcionalmente confirmados) a serem usados ​​como
pilha para este programa. O padrão é 2 MB reservados, 4K confirmados. [Esta opção é
específico para a porta i386 PE de destino do linker]

--subsistema qual
--subsistema qual:principal
--subsistema qual:principal.menor
Especifica o subsistema sob o qual seu programa será executado. Os valores legais para
qual são "nativos", "windows", "console", "posix" e "xbox". Você pode opcionalmente definir
a versão do subsistema também. Valores numéricos também são aceitos para qual. [Esta opção
é específico para a porta i386 PE de destino do linker]

As seguintes opções definem sinalizadores no campo "DllCharacteristics" do arquivo PE
header: [Estas opções são específicas para portas PE direcionadas do linker]

- alta entropia-va
A imagem é compatível com a randomização de layout de espaço de endereço de 64 bits (ASLR).

--dynamicbase
O endereço de base da imagem pode ser realocado usando a randomização do layout do espaço de endereço
(ASLR). Este recurso foi introduzido com o MS Windows Vista para destinos PE i386.

--forceinteg
As verificações de integridade do código são aplicadas.

--nxcompat
A imagem é compatível com o Data Execution Prevention. Este recurso era
introduzido com o MS Windows XP SP2 para alvos PE i386.

--não-isolamento
Embora a imagem compreenda o isolamento, não isole a imagem.

--no-seh
A imagem não usa SEH. Nenhum manipulador SE pode ser chamado a partir desta imagem.

--sem ligação
Não vincule esta imagem.

--wdmdriver
O driver usa o modelo de driver do MS Windows.

--tsaware
A imagem está ciente do Terminal Server.

--inserir carimbo de data/hora
--no-insert-timestamp
Insira um carimbo de data / hora real na imagem. Este é o comportamento padrão, pois corresponde
código legado e significa que a imagem funcionará com outras ferramentas proprietárias. o
O problema com este padrão é que resultará em imagens ligeiramente diferentes sendo
produzidos cada vez que as mesmas fontes são vinculadas. A opção --no-insert-timestamp pode
ser usado para inserir um valor zero para o carimbo de data / hora, garantindo que os binários produzidos
de fontes idênticas serão comparadas de forma idêntica.

O destino C6X uClinux usa um formato binário chamado DSBT para oferecer suporte a bibliotecas compartilhadas. Cada
a biblioteca compartilhada no sistema precisa ter um índice exclusivo; todos os executáveis ​​usam um índice de
0.

--dsbt-size tamanho
Esta opção define o número de entradas no DSBT do executável atual ou compartilhado
biblioteca para tamanho. O padrão é criar uma tabela com 64 entradas.

--dsbt-index índice
Esta opção define o índice DSBT do executável atual ou biblioteca compartilhada para índice.
O padrão é 0, que é apropriado para gerar executáveis. Se um compartilhado
biblioteca é gerada com um índice DSBT de 0, os relocs "R_C6000_DSBT_INDEX" são
copiado para o arquivo de saída.

O --no-merge-exidx-entries switch desativa a fusão de entradas exidx adjacentes em
informações de desenrolamento do quadro.

Os linkers 68HC11 e 68HC12 suportam opções específicas para controlar o banco de memória
mapeamento de comutação e geração de código de trampolim.

- sem trampolim
Esta opção desabilita a geração do trampolim. Por padrão, um trampolim é
gerado para cada função distante que é chamada usando uma instrução "jsr" (este
acontece quando um ponteiro para uma função distante é obtido).

--banco-janela nome
Esta opção indica ao vinculador o nome da região de memória no MEMÓRIA
especificação que descreve a janela do banco de memória. A definição de tal região é
em seguida, usado pelo vinculador para calcular a paginação e os endereços na janela de memória.

As seguintes opções são suportadas para controlar o manuseio da geração de GOT ao vincular para
68 mil alvos.

--got =tipo
Esta opção informa ao vinculador qual esquema de geração de GOT usar. tipo deveria ser um
of solteiro, negativo, multigot or alvo. Para obter mais informações, consulte a entrada de informações
por ld.

As seguintes opções são suportadas para controlar a geração de instruções microMIPS quando
vinculação para alvos MIPS.

--insn32
--no-insn32
Essas opções controlam a escolha das instruções microMIPS usadas no código gerado por
o linker, como aquele no PLT ou stubs de ligação lenta, ou em relaxamento. Se
--insn32 é usado, então o vinculador usa apenas codificações de instrução de 32 bits. Por padrão
ou se --no-insn32 é usado, todas as codificações de instrução são usadas, incluindo as de 16 bits
sempre que possível.

MEIO AMBIENTE


Você pode mudar o comportamento de ld com as variáveis ​​de ambiente "GNUTARGET",
"LDEMULATION" e "COLLECT_NO_DEMANGLE".

"GNUTARGET" determina o formato do objeto do arquivo de entrada se você não usar -b (ou seu sinônimo
--formato) Seu valor deve ser um dos nomes BFD para um formato de entrada. Se não há
"GNUTARGET" no meio ambiente, ld usa o formato natural do alvo. Se "GNUTARGET"
é definido como "padrão", então o BFD tenta descobrir o formato de entrada examinando o binário
arquivos de entrada; este método costuma ser bem-sucedido, mas existem ambigüidades potenciais, uma vez que há
não é um método para garantir que o número mágico usado para especificar os formatos de arquivo-objeto é
exclusivo. No entanto, o procedimento de configuração para BFD em cada sistema coloca o
formato convencional para esse sistema primeiro na lista de pesquisa, para que as ambigüidades sejam resolvidas
a favor da convenção.

"LDEMULAÇÃO" determina a emulação padrão se você não usar o -m opção. O
a emulação pode afetar vários aspectos do comportamento do vinculador, especialmente o vinculador padrão
roteiro. Você pode listar as emulações disponíveis com o --verbose or -V opções. Se o
-m opção não é usada, e a variável de ambiente "LDEMULATION" não é definida, o
a emulação padrão depende de como o vinculador foi configurado.

Normalmente, o vinculador assumirá como padrão os símbolos de demangling. No entanto, se
"COLLECT_NO_DEMANGLE" é definido no ambiente, então será padronizado para não demangling
símbolos. Esta variável de ambiente é usada de maneira semelhante pelo linker "gcc"
programa wrapper. O padrão pode ser substituído pelo --desmanchar e --sem desmembramento
opções.

Use mips64-linux-gnuabi64-ld online usando serviços onworks.net


Ad


Ad

Programas online mais recentes para Linux e Windows