InglésFrancésEspañol

Ad


icono de página de OnWorks

i686-linux-gnu-ld: en línea en la nube

Ejecute i686-linux-gnu-ld en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando i686-linux-gnu-ld que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


ld - El enlazador GNU

SINOPSIS


viejo [opciones] archivoobj ...

DESCRIPCIÓN


ld combina una serie de objetos y archivos de almacenamiento, reubica sus datos
y ata las referencias de símbolos. Por lo general, el último paso en la compilación de un
el programa se va a ejecutar ld.

ld acepta archivos de lenguaje de comandos de Linker escritos en un superconjunto de
La sintaxis del lenguaje de comandos del editor de enlaces de AT&T, para proporcionar
control total sobre el proceso de vinculación.

Esta página de manual no describe el lenguaje de comandos; ver el ld entrada
en "info" para obtener detalles completos sobre el lenguaje de comandos y otros aspectos
del enlazador GNU.

Esta versión de ld utiliza las bibliotecas BFD de propósito general para operar en
archivos de objeto. Esto permite ld para leer, combinar y escribir archivos de objetos
en muchos formatos diferentes --- por ejemplo, COFF o "a.out". Diferente
Los formatos se pueden vincular entre sí para producir cualquier tipo de objeto disponible.
archivo.

Aparte de su flexibilidad, el enlazador GNU es más útil que otros
enlazadores para proporcionar información de diagnóstico. Muchos enlazadores abandonan
ejecución inmediatamente después de encontrar un error; cuando sea posible, ld
continúa ejecutándose, lo que le permite identificar otros errores (o, en algunos
casos, para obtener un archivo de salida a pesar del error).

El enlazador GNU ld está destinado a cubrir una amplia gama de situaciones y a
sea ​​lo más compatible posible con otros enlazadores. Como resultado, tienes
muchas opciones para controlar su comportamiento.

CAMPUS


El vinculador admite una gran cantidad de opciones de línea de comandos, pero en realidad
práctica pocos de ellos se utilizan en un contexto particular. Por ejemplo,
un uso frecuente de ld es vincular archivos de objeto estándar de Unix en un
sistema Unix estándar y compatible. En tal sistema, para vincular un archivo
"hola.o":

Yo hago /lib/crt0.o hola.o -lc

Esto dice ld para producir un archivo llamado salida como resultado de vincular
el archivo "/lib/crt0.o" con "hello.o" y la biblioteca "libc.a", que
provendrá de los directorios de búsqueda estándar. (Ver la discusión de
las -l opción a continuación.)

Algunas de las opciones de la línea de comandos para ld puede especificarse en cualquier punto de
la línea de comando. Sin embargo, las opciones que se refieren a archivos, como -l or
-T, hace que el archivo se lea en el punto en el que aparece la opción
en la línea de comando, en relación con los archivos de objeto y otros archivos
opciones. La repetición de opciones que no son de archivo con un argumento diferente
o no tienen ningún efecto adicional, o anulan sucesos anteriores (aquellos
más a la izquierda en la línea de comando) de esa opción. Opciones que
pueden especificarse de manera significativa más de una vez se indican en el
descripciones a continuación.

Los argumentos que no son de opción son archivos de objeto o archivos que deben
Unidos entre sí. Pueden seguir, preceder o mezclarse con
opciones de línea de comandos, excepto que un argumento de archivo de objeto no puede ser
colocado entre una opción y su argumento.

Por lo general, el vinculador se invoca con al menos un archivo de objeto, pero
puede especificar otras formas de archivos de entrada binarios usando -l, -R, y la
lenguaje de comandos de script. Si no Los archivos de entrada binaria son
especificado, el enlazador no produce ninguna salida y emite el
mensaje No Las opciones de entrada archivos.

Si el vinculador no puede reconocer el formato de un archivo de objeto, lo hará
suponga que es un script de enlazador. Un guión especificado de esta manera
aumenta el script del enlazador principal utilizado para el enlace (ya sea el predeterminado
script del enlazador o el especificado usando -T). Esta característica permite
el vinculador para vincular contra un archivo que parece ser un objeto o un
archivo, pero en realidad simplemente define algunos valores de símbolo, o utiliza
"ENTRADA" o "GRUPO" para cargar otros objetos. Especificando un script en este
manera simplemente aumenta el script del enlazador principal, con los comandos adicionales
colocado después del guión principal; utilizar el -T opción para reemplazar el predeterminado
script del enlazador por completo, pero tenga en cuenta el efecto del comando "INSERT".

Para las opciones cuyos nombres son de una sola letra, los argumentos de las opciones deben
siga la letra de opción sin intervenir espacios en blanco, o sea
dado como argumentos separados inmediatamente después de la opción que
los requiere.

Para las opciones cuyos nombres son varias letras, un guión o dos
puede preceder al nombre de la opción; por ejemplo, -símbolo-de-rastreo y
--traza-símbolo son equivalentes. Nota --- hay una excepción a esto
regla. Varias opciones de letras que comienzan con una 'o' minúscula pueden
ir precedido únicamente de dos guiones. Esto es para reducir la confusión con el
-o opción. Así por ejemplo -omágico establece el nombre del archivo de salida en magic
mientras --omágico establece la bandera NMAGIC en la salida.

Los argumentos para las opciones de varias letras deben estar separados del
el nombre de la opción con un signo igual, o se puede dar como argumentos separados
inmediatamente después de la opción que los requiera. Por ejemplo,
--traza-símbolo foo y --trace-symbol = foo son equivalentes. Único
Se aceptan abreviaturas de los nombres de opciones de varias letras.

Nota --- si el vinculador se invoca indirectamente, a través de un controlador de compilación
(p.ej gcc) entonces todas las opciones de la línea de comando del enlazador deben tener el prefijo
by -Wl, (o lo que sea apropiado para el controlador del compilador en particular)
Me gusta esto:

gcc -Wl, - grupo de inicio foo.o bar.o -Wl, - grupo final

Esto es importante, porque de lo contrario el programa del controlador del compilador
Elimine silenciosamente las opciones del vinculador, lo que da como resultado un enlace incorrecto. Confusión
También puede surgir al pasar opciones que requieren valores a través de un
controlador, ya que el uso de un espacio entre la opción y el argumento actúa como un
separador, y hace que el controlador pase solo la opción al vinculador
y el argumento para el compilador. En este caso, es más sencillo de utilizar
las formas unidas de las opciones de una y varias letras, como:

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

A continuación se muestra una tabla de los modificadores genéricos de la línea de comandos aceptados por el
Enlazador GNU:

@presentar
Leer las opciones de la línea de comandos de presentar. Se insertan las opciones leídas
en lugar del original @presentar opción. Si presentar no existe, o
no se puede leer, entonces la opción se tratará literalmente, y no
eliminado.

Las opciones en presentar están separados por espacios en blanco. Un espacio en blanco
El carácter se puede incluir en una opción rodeando todo el
opción entre comillas simples o dobles. Cualquier personaje (incluido
una barra invertida) puede incluirse anteponiendo el carácter que se
incluido con una barra invertida. los presentar puede contener en sí mismo
@presentar opciones; cualquiera de estas opciones se procesará de forma recursiva.

-a keyword
Esta opción es compatible con la compatibilidad con HP / UX. los keyword
el argumento debe ser una de las cadenas Archivo, compartidoo tu préstamo estudiantil.
-archivo es funcionalmente equivalente a -Bestático, y los otros dos
las palabras clave son funcionalmente equivalentes a -Bdinámico. Esta opción puede
utilizarse tantas veces como desee.

--auditoría AUDITLIB
Añade AUDITLIB a la entrada "DT_AUDIT" de la sección dinámica.
AUDITLIB no se comprueba su existencia, ni utilizará el
DT_SONAME especificado en la biblioteca. Si se especifica varias veces
"DT_AUDIT" contendrá una lista de interfaces de auditoría separadas por dos puntos
usar. Si el vinculador encuentra un objeto con una entrada de auditoría mientras
buscando bibliotecas compartidas, agregará un correspondiente
Entrada "DT_DEPAUDIT" en el archivo de salida. Esta opción es solo
significativo en las plataformas ELF que admiten la interfaz rtld-audit.

-A arquitectura
--arquitectura =arquitectura
En la versión actual de ld, esta opción es útil solo para
Familia de arquitecturas Intel 960. En eso ld configuración, la
arquitectura El argumento identifica la arquitectura particular en el
960, habilitando algunas salvaguardas y modificando el archivo-
ruta de búsqueda de la biblioteca.

Versiones futuras de ld puede admitir una funcionalidad similar para otros
familias de arquitectura.

-b formato de entrada
--format =formato de entrada
ld puede configurarse para admitir más de un tipo de archivo de objeto.
Si ld está configurado de esta manera, puede utilizar el -b opción de
especificar el formato binario para los archivos de objeto de entrada que siguen a este
opción en la línea de comando. Incluso cuando ld está configurado para soportar
formatos de objeto alternativos, normalmente no es necesario especificar esto,
as ld debe configurarse para esperar como formato de entrada predeterminado el
formato más habitual en cada máquina. formato de entrada es una cadena de texto,
el nombre de un formato particular admitido por las bibliotecas BFD.
(Puede enumerar los formatos binarios disponibles con volcado de objetos -i.)

Es posible que desee utilizar esta opción si está vinculando archivos con un
formato binario inusual. También puedes usar -b para cambiar de formato
explícitamente (al vincular archivos objeto de diferentes formatos), por
de alta calidad que incluyen -b formato de entrada antes de cada grupo de archivos de objeto en un
formato particular.

El formato predeterminado se toma de la variable de entorno
"GNUTARGET".

También puede definir el formato de entrada desde un script, utilizando el
comando "OBJETIVO";

-c Archivo de comando de resonancia magnética
--mri-script =Archivo de comando de resonancia magnética
Para compatibilidad con enlazadores producidos por resonancia magnética, ld acepta guion
archivos escritos en un lenguaje de comando alternativo y restringido,
descrito en la sección Archivos de secuencia de comandos compatibles con MRI de GNU ld
documentación. Introduzca archivos de secuencia de comandos de MRI con la opción -c; utilizar
las -T opción para ejecutar scripts de enlazador escritos en el uso general
ld Lenguaje de escritura. Si archivo cmd de resonancia magnética no existe, ld busca
en los directorios especificados por cualquier -L .

-d
-corriente continua
-dp Estas tres opciones son equivalentes; se admiten múltiples formas
para compatibilidad con otros enlazadores. Asignan espacio a lo común
símbolos incluso si se especifica un archivo de salida reubicable (con -r).
El comando de secuencia de comandos "FORCE_COMMON_ALLOCATION" tiene el mismo efecto.

--depauditar AUDITLIB
-P AUDITLIB
Añade AUDITLIB a la entrada "DT_DEPAUDIT" de la sección dinámica.
AUDITLIB no se comprueba su existencia, ni utilizará el
DT_SONAME especificado en la biblioteca. Si se especifica varias veces
"DT_DEPAUDIT" contendrá una lista de auditoría separada por dos puntos
interfaces a utilizar. Esta opción solo es significativa en plataformas ELF
compatible con la interfaz rtld-audit. La opción -P se proporciona para
Compatibilidad con Solaris.

-e entrada
--entry =entrada
Uso entrada como el símbolo explícito para comenzar la ejecución de su
programa, en lugar del punto de entrada predeterminado. Si no hay
símbolo nombrado entrada, el vinculador intentará analizar entrada como un número,
y utilícelo como la dirección de entrada (el número se interpretará
en base 10; puede usar un líder 0x para base 16, o un líder 0
para base 8).

--excluir-libs lib,lib, ...
Especifica una lista de bibliotecas de archivos de las que los símbolos no deben
ser exportado automáticamente. Los nombres de las bibliotecas pueden estar delimitados por
comas o dos puntos. Especificar "--exclude-libs ALL" excluye los símbolos
en todas las bibliotecas de archivos desde la exportación automática. Esta opcion es
disponible solo para el puerto de destino i386 PE del enlazador y para
Puertos dirigidos ELF. Para i386 PE, los símbolos enumerados explícitamente en un
Los archivos .def aún se exportan, independientemente de esta opción. Para ELF
puertos específicos, los símbolos afectados por esta opción se tratarán como
oculto.

--excluir-módulos-para-implib módulo,módulo, ...
Especifica una lista de archivos objeto o miembros del archivo, de los cuales
Los símbolos no deben exportarse automáticamente, pero sí deben
copiado al por mayor en la biblioteca de importación que se genera durante el
Enlace. Los nombres de los módulos pueden estar delimitados por comas o dos puntos, y
debe coincidir exactamente con los nombres de archivo utilizados por ld para abrir los archivos; por
miembros del archivo, este es simplemente el nombre del miembro, pero para el objeto
archivos, el nombre de la lista debe incluir y coincidir exactamente con cualquier ruta
se utiliza para especificar el archivo de entrada en la línea de comandos del vinculador. Esta
La opción está disponible solo para el puerto de destino i386 PE del
enlazador. Los símbolos enumerados explícitamente en un archivo .def todavía son
exportado, independientemente de esta opción.

-E
--exportación dinámica
--sin-exportación-dinámica
Al crear un ejecutable vinculado dinámicamente, utilice el -E opción
o de --exportación dinámica La opción hace que el vinculador agregue todos los símbolos.
a la tabla de símbolos dinámicos. La tabla de símbolos dinámicos es el conjunto
de símbolos que son visibles desde objetos dinámicos en tiempo de ejecución.

Si no usa ninguna de estas opciones (o usa el
--sin-exportación-dinámica opción para restaurar el comportamiento predeterminado), la
La tabla de smbolos dinmicos normalmente contendr slo aquellos smbolos que
son referenciados por algún objeto dinámico mencionado en el enlace.

Si usa "dlopen" para cargar un objeto dinámico que necesita hacer referencia
Volver a los símbolos definidos por el programa, en lugar de algún otro
objeto dinámico, entonces probablemente necesitará usar esta opción cuando
vincular el programa en sí.

También puede usar la lista dinámica para controlar qué símbolos deben ser
agregado a la tabla de símbolos dinámicos si el formato de salida lo admite.
Ver la descripción de - lista-dinámica.

Tenga en cuenta que esta opción es específica para los puertos de destino ELF. EDUCACIÓN FÍSICA
los destinos admiten una función similar para exportar todos los símbolos de una DLL
o EXE; ver la descripción de --exportar-todos-los-símbolos abajo.

-EB Vincula objetos big-endian. Esto afecta el formato de salida predeterminado.

-EL Vincula objetos little-endian. Esto afecta la salida predeterminada
formato.

-f nombre
--auxiliar =nombre
Al crear un objeto compartido ELF, configure el DT_AUXILIARY interno
campo al nombre especificado. Esto le dice al enlazador dinámico que
la tabla de símbolos del objeto compartido debe utilizarse como un
filtro auxiliar en la tabla de símbolos del objeto compartido nombre .

Si luego vincula un programa con este objeto de filtro, entonces, cuando
ejecuta el programa, el vinculador dinámico verá el DT_AUXILIARY
campo. Si el enlazador dinámico resuelve algún símbolo del filtro
objeto, primero comprobará si hay una definición en el
objeto compartido nombre . Si hay uno, se utilizará en lugar de
la definición en el objeto de filtro. El objeto compartido nombre necesite
no existe. Así, el objeto compartido nombre se puede utilizar para proporcionar una
implementación alternativa de ciertas funciones, tal vez para
depuración o para el rendimiento específico de la máquina.

Esta opción se puede especificar más de una vez. El DT_AUXILIARY
Las entradas se crearán en el orden en que aparecen en el
línea de comando.

-F nombre
--filter =nombre
Al crear un objeto compartido ELF, configure el DT_FILTER interno
campo al nombre especificado. Esto le dice al enlazador dinámico que
la tabla de símbolos del objeto compartido que se está creando debe
ser utilizado como filtro en la tabla de símbolos del objeto compartido nombre .

Si luego vincula un programa con este objeto de filtro, entonces, cuando
ejecuta el programa, el vinculador dinámico verá el DT_FILTER
campo. El enlazador dinámico resolverá los símbolos de acuerdo con el
tabla de smbolos del objeto de filtro como de costumbre, pero en realidad
enlace a las definiciones que se encuentran en el objeto compartido nombre . Por lo tanto, la
El objeto de filtro se puede utilizar para seleccionar un subconjunto de los símbolos.
proporcionado por el objeto nombre .

Algunos enlazadores más antiguos usaban el -F opción a lo largo de una compilación
cadena de herramientas para especificar el formato de archivo de objeto tanto para la entrada como para
archivos de objeto de salida. El enlazador GNU usa otros mecanismos para esto
propósito: el -b, --formato, --oformato opciones, el comando "OBJETIVO"
en los scripts del enlazador y la variable de entorno "GNUTARGET". El
El enlazador GNU ignorará el -F opción cuando no se crea un ELF
objeto compartido.

-fini =nombre
Al crear un objeto ejecutable o compartido ELF, llame a NAME cuando
el ejecutable o el objeto compartido se descarga, estableciendo DT_FINI en
la dirección de la función. De forma predeterminada, el vinculador usa "_fini"
como la función a llamar.

-g Ignorado. Se proporciona para compatibilidad con otras herramientas.

-G propuesta de
--gpsize =propuesta de
Establecer el tamaño máximo de los objetos que se optimizarán utilizando la GP
registrarse para tamaño. Esto solo es significativo para formatos de archivo de objeto
como MIPS ELF que permiten colocar objetos grandes y pequeños en
diferentes secciones. Esto se ignora para otros formatos de archivo de objeto.

-h nombre
-soname =nombre
Al crear un objeto compartido ELF, configure el DT_SONAME interno
campo al nombre especificado. Cuando un ejecutable está vinculado con un
objeto compartido que tiene un campo DT_SONAME, luego cuando el ejecutable
se ejecuta, el vinculador dinámico intentará cargar el objeto compartido
especificado por el campo DT_SONAME en lugar de usar el archivo
nombre dado al enlazador.

-i Realizar un enlace incremental (igual que la opción -r).

-init =nombre
Al crear un objeto ejecutable o compartido ELF, llame a NAME cuando
el ejecutable o el objeto compartido se carga, estableciendo DT_INIT en
la dirección de la función. De forma predeterminada, el vinculador usa "_init"
como la función a llamar.

-l especificación de nombre
--library =especificación de nombre
Agregue el archivo o el archivo de objeto especificado por especificación de nombre a la lista de
archivos para vincular. Esta opción se puede utilizar tantas veces como desee. Si
especificación de nombre es de la forma :nombre del archivo, ld buscará la ruta de la biblioteca
para un archivo llamado nombre de archivo, de lo contrario buscará en la biblioteca
ruta de un archivo llamado libnamespec.a.

En sistemas que admiten bibliotecas compartidas, ld también puede buscar
archivos que no sean libnamespec.a. Específicamente, en ELF y SunOS
sistemas, ld buscará en un directorio una biblioteca llamada
libnamespec.so antes de buscar uno llamado libnamespec.a. (Por
convención, una extensión ".so" indica una biblioteca compartida).
que este comportamiento no se aplica a :nombre del archivo, que siempre
especifica un archivo llamado nombre de archivo.

El vinculador buscará un archivo solo una vez, en la ubicación donde
se especifica en la línea de comando. Si el archivo define un
símbolo que estaba indefinido en algún objeto que apareció antes de la
archivo en la línea de comando, el enlazador incluirá el
archivo (s) apropiado (s) del archivo. Sin embargo, un símbolo indefinido
en un objeto que aparece más tarde en la línea de comando no provocará la
vinculador para buscar el archivo de nuevo.

Consulte las -( opción para forzar al vinculador a buscar archivos
varias veces.

Puede enumerar el mismo archivo varias veces en la línea de comando.

Este tipo de búsqueda de archivos es estándar para enlazadores Unix.
Sin embargo, si estás usando ld en AIX, tenga en cuenta que es diferente de
el comportamiento del enlazador AIX.

-L directorio de búsqueda
--library-path =directorio de búsqueda
Agregar ruta directorio de búsqueda a la lista de caminos que ld buscará
bibliotecas de archivos y ld scripts de control. Puedes usar esta opción
cualquier número de veces. Los directorios se buscan en el orden en
que se especifican en la línea de comando. Directorios
especificados en la línea de comando se buscan antes que el predeterminado
directorios. Todo -L las opciones se aplican a todos -l opciones, independientemente de
el orden en que aparecen las opciones. -L las opciones no afectan
cómo ld busca una secuencia de comandos del vinculador a menos que -T Se especifica la opción.

If directorio de búsqueda comienza con "=", entonces el "=" será reemplazado por el
raíz del sistema prefijo, controlado por el --sysroot opción, o especificado
cuando el enlazador está configurado.

El conjunto predeterminado de rutas buscadas (sin especificarse con -L)
depende del modo de emulación ld está usando, y en algunos casos también
sobre cómo se configuró.

Las rutas también se pueden especificar en un script de enlace con el
Comando "SEARCH_DIR". Los directorios especificados de esta manera se buscan
en el punto en el que aparece el script del vinculador en el comando
la línea.

-m emulación
Emular el emulación enlazador. Puede enumerar los disponibles
emulaciones con el --verboso or -V .

Si -m no se utiliza la opción, la emulación se toma de la
Variable de entorno "LDEMULATION", si está definida.

De lo contrario, la emulación predeterminada depende de cómo se utilizó el enlazador.
configurado.

-M
--imprimir-mapa
Imprima un mapa de vínculos a la salida estándar. Un mapa de enlaces proporciona
información sobre el enlace, que incluye lo siguiente:

· Dónde se asignan los archivos de objetos a la memoria.

· Cómo se asignan los símbolos comunes.

· Todos los miembros del archivo incluidos en el enlace, con una mención del
símbolo que provocó la incorporación del miembro del archivo.

· Los valores asignados a los símbolos.

Nota: símbolos cuyos valores se calculan mediante una expresión que
implica una referencia a un valor anterior del mismo símbolo puede
no se muestra el resultado correcto en el mapa de enlaces. Esto es
porque el vinculador descarta los resultados intermedios y solo
conserva el valor final de una expresión. Bajo tal
circunstancias, el vinculador mostrará el valor final adjunto
entre corchetes. Así, por ejemplo, un script de enlazador
conteniendo:

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

producirá la siguiente salida en el mapa de enlaces si el -M
se utiliza la opción:

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

See Expresiones para obtener más información sobre las expresiones en
secuencias de comandos del enlazador.

-n
--nmagia
Desactive la alineación de las secciones de la página y desactive la vinculación contra
bibliotecas compartidas. Si el formato de salida es compatible con la magia de estilo Unix
números, marque la salida como "NMAGIC".

-N
--omágico
Configure las secciones de texto y datos para que se puedan leer y escribir. También,
no alinee la página del segmento de datos y desactive la vinculación contra
bibliotecas compartidas. Si el formato de salida es compatible con la magia de estilo Unix
números, marque la salida como "OMAGIC". Nota: aunque se puede escribir
La sección de texto está permitida para los objetivos PE-COFF, no se ajusta a
la especificación de formato publicada por Microsoft.

--noomágico
Esta opción niega la mayoría de los efectos de la -N opción. Establece
la sección de texto para ser de solo lectura, y obliga al segmento de datos a ser
alineado con la página. Nota: esta opción no habilita la vinculación contra
bibliotecas compartidas. Usar -Bdinámico para esto.

-o salida
--salida =salida
Uso salida como el nombre del programa producido por ld; si esto
no se especifica la opción, el nombre fuera se utiliza de forma predeterminada. los
El comando de script "SALIDA" también puede especificar el nombre del archivo de salida.

-O nivel
If nivel es un valor numérico mayor que cero ld optimiza el
producción. Esto puede llevar mucho más tiempo y, por lo tanto,
probablemente solo debería estar habilitado para el binario final. En el
En este momento, esta opción solo afecta a la generación de bibliotecas compartidas ELF.
Las versiones futuras del vinculador pueden hacer un mayor uso de esta opción.
Además, actualmente no hay diferencia en el comportamiento del enlazador para
diferentes valores distintos de cero de esta opción. De nuevo, esto puede cambiar
con versiones futuras.

- estado de empuje
El - estado de empuje permite conservar el estado actual de las banderas
que gobiernan el manejo del archivo de entrada para que todos puedan ser
restaurado con uno correspondiente --estado popular .

Las opciones que están cubiertas son: -Bdinámico, -Bestático, -dn, -dy,
-llamada_compartida, -no_compartido, -estático, -N, -n, --archivo completo,
--no-archivo-completo, -r, -Ur, --copiar-dt-entradas-necesarias,
--no-copia-dt-entradas-necesarias, --según sea necesario, --no-según sea necesarioy -a.

Un objetivo para esta opción son las especificaciones para paquete-config. Cuando el
usado con el --libras opción todas las bibliotecas posiblemente necesarias son
enumerados y luego posiblemente vinculados con todo el tiempo. Es mejor
devolver algo de la siguiente manera:

-Wl, - push-state, - según sea necesario -libone -libtwo -Wl, - pop-state

Deshace el efecto de --push-state, restaura los valores anteriores de
las banderas que gobiernan el manejo de archivos de entrada.

-q
--emitir-relocs
Deje las secciones y los contenidos de reubicación en ejecutables completamente vinculados.
Las herramientas de optimización y análisis de enlaces de publicaciones pueden necesitar esta información
para realizar modificaciones correctas de ejecutables. Esta
da como resultado ejecutables más grandes.

Actualmente, esta opción solo se admite en plataformas ELF.

--force-dinámico
Fuerza el archivo de salida para que tenga secciones dinámicas. Esta opcion es
específico para los objetivos de VxWorks.

-r
--relocalizable
Generar salida reubicable --- es decir, generar un archivo de salida que
puede a su vez servir como entrada para ld. A esto se le suele llamar parcialmente
enlace. Como efecto secundario, en entornos que admiten estándares
Números mágicos de Unix, esta opción también establece la magia del archivo de salida
número a "OMAGIC". Si no se especifica esta opción, un valor absoluto
se produce el archivo. Al vincular programas C ++, esta opción seguirá no
resolver referencias a constructores; para hacer eso, usa -Ur.

Cuando un archivo de entrada no tiene el mismo formato que el de salida
archivo, el enlace parcial solo se admite si ese archivo de entrada no
contener las reubicaciones. Los diferentes formatos de salida pueden tener más
restricciones; por ejemplo, algunos formatos basados ​​en "a.out" no son compatibles
vinculación parcial con archivos de entrada en otros formatos.

Esta opción hace lo mismo que -i.

-R nombre de archivo
--justo-símbolos =nombre de archivo
Lea los nombres de los símbolos y sus direcciones de nombre de archivo, pero no
reubicarlo o incluirlo en la salida. Esto permite que su salida
archivo para referirse simbólicamente a ubicaciones absolutas de memoria definidas
en otros programas. Puede utilizar esta opción más de una vez.

Para compatibilidad con otros enlazadores ELF, si el -R opción es
seguido de un nombre de directorio, en lugar de un nombre de archivo, es
tratado como el -rruta .

-s
--despojar-todo
Omita toda la información de símbolos del archivo de salida.

-S
--strip-depuración
Omita la información del símbolo del depurador (pero no todos los símbolos) del
archivo de salida.

-t
--rastro
Imprima los nombres de los archivos de entrada como ld los procesa.

-T archivo de comandos
--script =archivo de comandos
Uso archivo de comandos como el script del enlazador. Este script reemplaza ld's
secuencia de comandos del vinculador predeterminado (en lugar de agregarle), por lo que archivo de comando
debe especificar todo lo necesario para describir el archivo de salida.
If archivo de comandos no existe en el directorio actual, "ld" parece
para ello en los directorios especificados por cualquier precedente -L .
Múltiple -T las opciones se acumulan.

-dT archivo de comandos
--default-script =archivo de comandos
Uso archivo de comandos como el script de creación de enlaces predeterminado.

Esta opción es similar a la --guión opción excepto que
el procesamiento del guión se retrasa hasta después de que el resto del
Se ha procesado la línea de comando. Esto permite opciones colocadas después
las - script predeterminado opción en la línea de comando para afectar el
comportamiento de la secuencia de comandos del enlazador, que puede ser importante cuando el
La línea de comando del vinculador no puede ser controlada directamente por el usuario. (p.ej
porque la línea de comando está siendo construida por otra herramienta, como
as gcc).

-u símbolo
--undefined =símbolo
FORCE símbolo para ser ingresado en el archivo de salida como indefinido
símbolo. Hacer esto puede, por ejemplo, desencadenar la vinculación de
módulos de bibliotecas estándar. -u puede repetirse con diferentes
argumentos de opción para ingresar símbolos indefinidos adicionales. Esta
La opción es equivalente al comando de secuencia de comandos del vinculador "EXTERN".

Si esta opción se utiliza para forzar la instalación de módulos adicionales
tirado en el enlace, y si es un error para que el símbolo
permanecer indefinido, entonces la opción --require-definido debería ser usado
preferiblemente.

--require-defined =símbolo
Exigir que símbolo se define en el archivo de salida. Esta opcion es
lo mismo que la opción --indefinido excepto que si símbolo no está definido
en el archivo de salida, el vinculador emitirá un error y saldrá.
El mismo efecto se puede lograr en un script de enlazador usando
"EXTERN", "ASSERT" y "DEFINED" juntos. Esta opción se puede utilizar
varias veces para requerir símbolos adicionales.

-Ur Para cualquier otro programa que no sea C ++, esta opción es equivalente a
-r: genera una salida reubicable --- es decir, un archivo de salida que puede
a su vez sirven como entrada para ld. Al vincular programas C ++, -Ur
resolver referencias a constructores, a diferencia de -r. No funciona
utilizan el -Ur en archivos que estaban vinculados con -Ur; una vez el
La tabla de constructor ha sido construida, no se puede agregar. Usar -Ur
solo para el último enlace parcial, y -r para los demás.

--manipulación-de-huérfanos =MODO
Controle cómo se manejan las secciones huérfanas. Una sección huérfana es una
no mencionado específicamente en un script de enlazador.

MODO puede tener cualquiera de los siguientes valores:

"lugar"
Las secciones huérfanas se colocan en una sección de salida adecuada
siguiendo la estrategia descrita en Huérfano secciones.
opción --único también afecta la forma en que se colocan las secciones.

"descarte"
Todas las secciones huérfanas se descartan, colocándolas en el
/DESCARTE/ .

"advertir"
El vinculador colocará la sección huérfana como para "lugar" y
también emita una advertencia.

"error"
El vinculador saldrá con un error si alguna sección huérfana es
Incluso cuando ambos padres biológicos vivían con el niño, los hogares casados eran más pacíficos que los que convivían, descubrió el Sr. Zill.

El valor predeterminado si - manipulación de huérfanos no se da es "lugar".

--único [=SECCIÓN]
Crea una sección de salida separada para cada sección de entrada que coincida
SECCIÓN, o si el comodín opcional SECCIÓN falta el argumento,
para cada sección de entrada huérfana. Una sección huérfana es una que no
mencionado específicamente en un script de enlazador. Puedes usar esta opción
varias veces en la línea de comando; Previene la fusión normal.
de secciones de entrada con el mismo nombre, anulando la sección de salida
asignaciones en una secuencia de comandos del vinculador.

-v
--versión
-V Muestra el número de versión de ld. -V La opción también enumera la
emulaciones compatibles.

-x
--descartar todo
Elimine todos los símbolos locales.

-X
--discard-locales
Elimine todos los símbolos locales temporales. (Estos símbolos comienzan con
prefijos de etiquetas locales específicos del sistema, normalmente .L para sistemas ELF
or L para sistemas tradicionales a.out.)

-y símbolo
--trace-symbol =símbolo
Imprima el nombre de cada archivo vinculado en el que símbolo aparece. Esta
La opción se puede dar cualquier número de veces. En muchos sistemas es
necesario anteponer un guión bajo.

Esta opción es útil cuando tiene un símbolo indefinido en su
enlace pero no sé de dónde proviene la referencia.

-Y camino
Añada camino a la ruta de búsqueda de biblioteca predeterminada. Esta opcion existe
para compatibilidad con Solaris.

-z keyword
Las palabras clave reconocidas son:

combreloc
Combina varias secciones de reloc y las ordena para hacer dinámicas
almacenamiento en caché de búsqueda de símbolos posible.

defensas
No permite símbolos no definidos en archivos de objeto. Símbolos indefinidos
en bibliotecas compartidas todavía se permiten.

ejecutivo
Marca el objeto que requiere pila ejecutable.

global
Esta opción solo es significativa cuando se crea un objeto compartido.
Hace que los símbolos definidos por este objeto compartido estén disponibles
para la resolución de símbolos de bibliotecas cargadas posteriormente.

inicializar
Esta opción solo es significativa cuando se crea un objeto compartido.
Marca el objeto para que su inicialización en tiempo de ejecución
ocurrir antes de la inicialización en tiempo de ejecución de cualquier otro objeto
introducido en el proceso al mismo tiempo. Similarmente el
La finalización del tiempo de ejecución del objeto ocurrirá después del tiempo de ejecución.
finalización de cualquier otro objeto.

interponer
Marca el objeto que su tabla de símbolos interpone ante todos
símbolos pero el ejecutable principal.

perezoso
Al generar una biblioteca ejecutable o compartida, márquela como
decirle al enlazador dinámico que difiera la resolución de la llamada de función a
el punto en el que se llama a la función (enlace diferido), en lugar de
que en el momento de la carga. El enlace diferido es el predeterminado.

cargar fltr
Marca el objeto en el que sus filtros se procesarán inmediatamente en
tiempo de ejecución.

Muldefs
Permite múltiples definiciones.

nocombreloc
Desactiva la combinación de múltiples secciones de reloc.

nocopyreloc
Deshabilite las variables .dynbss generadas por el vinculador utilizadas en lugar de
variables definidas en bibliotecas compartidas. Puede resultar en dinámica
reubicaciones de texto.

nodefaultlib
Marca el objeto que la búsqueda de dependencias de este
El objeto ignorará cualquier ruta de búsqueda de biblioteca predeterminada.

Nodelete
Marca que el objeto no debe descargarse en tiempo de ejecución.

abrir la cabeza
Marca el objeto no disponible para "dlopen".

nódulo
Marca que el objeto no puede ser volcado por "dldump".

pilanoexecs
Marca el objeto como no requiriendo pila ejecutable.

texto
Trate DT_TEXTREL en el objeto compartido como un error.

sin texto
No trate DT_TEXTREL en el objeto compartido como un error.

texto off
No trate DT_TEXTREL en el objeto compartido como un error.

norelro
No cree un encabezado de segmento ELF "PT_GNU_RELRO" en el
objeto.

ahora Al generar una biblioteca ejecutable o compartida, márquela como
dígale al enlazador dinámico que resuelva todos los símbolos cuando el programa
se inicia, o cuando la biblioteca compartida está vinculada al uso
dlopen, en lugar de diferir la resolución de la llamada de función al
punto cuando se llama por primera vez a la función.

natural
Marca que el objeto puede contener $ ORIGIN.

relro
Cree un encabezado de segmento ELF "PT_GNU_RELRO" en el objeto.

max-page-size =propuesta de
Establezca el tamaño de página máximo de emulación en propuesta de.

common-page-size =propuesta de
Establezca el tamaño de página común de emulación en propuesta de.

tamaño de pila =propuesta de
Especifique un tamaño de pila para un segmento ELF "PT_GNU_STACK".
Especificar cero anulará cualquier tamaño predeterminado distinto de cero
Creación del segmento "PT_GNU_STACK".

bndplt
Genere siempre el prefijo BND en las entradas PLT. Soportado para
Linux / x86_64.

sin datos-protegidos-externos
No trate el símbolo de datos protegidos como externo al construir
biblioteca compartida. Esta opción anula la configuración predeterminada del backend del vinculador.
Se puede utilizar para solucionar las reubicaciones incorrectas en
símbolos de datos protegidos generados por el compilador. Actualizaciones sobre
Los símbolos de datos protegidos por otro módulo no son visibles para el
biblioteca compartida resultante. Compatible con i386 y x86-64.

call-nop = prefix-addr
call-nop = prefijo-nop
call-nop = sufijo-nop
call-nop = prefijo-byte
call-nop = sufijo-byte
Especifique el relleno "NOP" de 1 byte al transformar indirecto
llamar a una función definida localmente, foo, a través de su ranura GOT.
call-nop = prefix-addr genera "0x67 llamada foo".
call-nop = prefijo-nop genera "0x90 llamada foo".
call-nop = sufijo-nop genera "llamada foo 0x90".
call-nop = prefijo-byte genera "byte llamar al foo ".
call-nop = sufijo-byte genera "llamar a foo byte". Soportado para
i386 y x86_64.

Otras palabras clave se ignoran por compatibilidad con Solaris.

-( archivo -)
- grupo de inicio archivo - grupo final
El archivo debe ser una lista de archivos de almacenamiento. Pueden ser
nombres de archivo explícitos, o -l .

Los archivos especificados se buscan repetidamente hasta que no hay nuevos
Se crean referencias indefinidas. Normalmente, se busca un archivo
solo una vez en el orden en que se especifica en la línea de comando.
Si se necesita un símbolo en ese archivo para resolver un indefinido
símbolo al que hace referencia un objeto en un archivo que aparece más adelante
la línea de comando, el vinculador no podría resolver eso
referencia. Al agrupar los archivos, todos se buscarán
repetidamente hasta que se resuelvan todas las posibles referencias.

El uso de esta opción tiene un costo de rendimiento significativo. Es mejor
para usarlo solo cuando hay referencias circulares inevitables
entre dos o más archivos.

--aceptar-arco-de-entrada-desconocido
--no-aceptar-entrada-desconocida-arch
Le dice al enlazador que acepte archivos de entrada cuya arquitectura no se puede
Reconocido. El supuesto es que el usuario sabe cuáles son
haciendo y deliberadamente quiere vincular estos archivos de entrada desconocidos.
Este era el comportamiento predeterminado del vinculador, antes de la versión 2.14.
El comportamiento predeterminado desde la versión 2.14 en adelante es rechazar tales
archivos de entrada, por lo que --aceptar-arco-de-entrada-desconocido la opción ha sido
agregado para restaurar el comportamiento anterior.

--según sea necesario
--no-según sea necesario
Esta opción afecta a las etiquetas ELF DT_NEEDED para bibliotecas dinámicas
mencionado en la línea de comando después de la --según sea necesario .
Normalmente, el vinculador agregará una etiqueta DT_NEEDED para cada dinámica
biblioteca mencionada en la línea de comando, independientemente de si el
la biblioteca es realmente necesaria o no. --según sea necesario provoca un DT_NEEDED
que solo se emita para una biblioteca que at esa punto in las liga
satisface una referencia de símbolo indefinido no débil de un regular
archivo de objeto o, si la biblioteca no se encuentra en las listas DT_NEEDED
de otras bibliotecas necesarias, una referencia de símbolo indefinido no débil
de otra biblioteca dinámica necesaria. Archivos de objetos o bibliotecas
que aparece en la línea de comando después de la biblioteca en cuestión no
afectará si la biblioteca se considera necesaria. Esto es similar a
las reglas para la extracción de archivos objeto de archivos.
--no-según sea necesario restaura el comportamiento predeterminado.

--add-necesario
--no-agregar-necesario
Estas dos opciones han quedado obsoletas debido a la similitud de
sus nombres al --según sea necesario y --no-según sea necesario opciones. Ellos
han sido reemplazados por --copiar-dt-entradas-necesarias y
--no-copia-dt-entradas-necesarias.

-afirmar keyword
Esta opción se ignora por compatibilidad con SunOS.

-Bdinámico
-dy
-llamada_compartida
Enlace contra bibliotecas dinámicas. Esto solo es significativo en
plataformas para las que se admiten bibliotecas compartidas. Esta opcion es
normalmente el predeterminado en tales plataformas. Las diferentes variantes de
esta opción es para compatibilidad con varios sistemas. Puedes
use esta opción varias veces en la línea de comando: afecta
biblioteca buscando -l opciones que lo siguen.

-Bgrupo
Establezca la bandera "DF_1_GROUP" en la entrada "DT_FLAGS_1" en la dinámica
sección. Esto hace que el enlazador en tiempo de ejecución maneje las búsquedas en este
objeto y sus dependencias para realizar solo dentro del grupo.
--unresolved-symbols = report-all está implícito. Esta opción es solo
significativo en las plataformas ELF que admiten bibliotecas compartidas.

-Bestático
-dn
-no_compartido
-estático
No se vincule con bibliotecas compartidas. Esto solo es significativo en
plataformas para las que se admiten bibliotecas compartidas. Lo diferente
Las variantes de esta opción son para compatibilidad con varios sistemas.
Puede usar esta opción varias veces en la línea de comando:
afecta la búsqueda de la biblioteca -l opciones que lo siguen. Esta
la opción también implica --unresolved-symbols = report-all. Esta opción
se puede utilizar con -compartido. Si lo hace, significa que una biblioteca compartida es
siendo creado, pero que todas las referencias externas de la biblioteca
debe resolverse extrayendo entradas de bibliotecas estáticas.

-Bsimbólico
Al crear una biblioteca compartida, vincule referencias a símbolos globales
a la definición dentro de la biblioteca compartida, si la hubiera. Normalmente, es
Es posible que un programa vinculado a una biblioteca compartida
anula la definición dentro de la biblioteca compartida. Esta opción puede
también se puede utilizar con el --exportación dinámica opción, al crear una
posición ejecutable independiente, para enlazar referencias a global
símbolos a la definición dentro del ejecutable. Esta opcion es
solo es significativo en las plataformas ELF que admiten bibliotecas compartidas y
posición ejecutables independientes.

-Funciones-bsimbólicas
Al crear una biblioteca compartida, vincule las referencias a la función global
símbolos a la definición dentro de la biblioteca compartida, si corresponde. Esta
La opción también se puede utilizar con la --exportación dinámica opción, cuando
creando un ejecutable independiente de la posición, para enlazar referencias a
símbolos de función global a la definición dentro del ejecutable.
Esta opción solo es significativa en las plataformas ELF que admiten
bibliotecas compartidas y ejecutables independientes de la posición.

- lista-dinámica =archivo-lista-dinámica
Especifique el nombre de un archivo de lista dinámica para el vinculador. Esto es
normalmente se utiliza al crear bibliotecas compartidas para especificar una lista de
símbolos globales cuyas referencias no deberían estar vinculadas al
definición dentro de la biblioteca compartida, o creando dinámicamente
ejecutables vinculados para especificar una lista de símbolos que deben ser
agregado a la tabla de símbolos en el ejecutable. Esta opción es solo
significativo en las plataformas ELF que admiten bibliotecas compartidas.

El formato de la lista dinámica es el mismo que el del nodo de versión
sin alcance y nombre de nodo. Ver VERSIÓN para obtener más información.

--datos-de-lista-dinámica
Incluya todos los símbolos de datos globales en la lista dinámica.

- lista-dinámica-cpp-nueva
Proporcione la lista dinámica incorporada para el operador C ++ new and delete.
Es principalmente útil para construir libstdc ++ compartido.

--dinámica-lista-cpp-typeinfo
Proporcione la lista dinámica incorporada para el tipo de tiempo de ejecución de C ++
identificación.

--comprobar-secciones
--no-check-secciones
Pregunta el enlazador no para comprobar las direcciones de las secciones después de que hayan sido
asignado para ver si hay superposiciones. Normalmente el enlazador
realizará esta comprobación y, si encuentra superposiciones,
producir mensajes de error adecuados. El enlazador conoce y
hace concesiones para las secciones en superposiciones. El valor por defecto
el comportamiento se puede restaurar usando el interruptor de línea de comando
--comprobar-secciones. La superposición de secciones no suele comprobarse
enlaces reubicables. Puede forzar la comprobación en ese caso utilizando
las --comprobar-secciones .

--copiar-dt-entradas-necesarias
--no-copia-dt-entradas-necesarias
Esta opción afecta al tratamiento de las bibliotecas dinámicas referidas
por etiquetas DT_NEEDED dentro Bibliotecas dinámicas ELF mencionadas en el
línea de comando. Normalmente, el vinculador no agregará una etiqueta DT_NEEDED al
binario de salida para cada biblioteca mencionada en una etiqueta DT_NEEDED en un
biblioteca dinámica de entrada. Con --copiar-dt-entradas-necesarias especificado en
la línea de comando, sin embargo, cualquier biblioteca dinámica que la siga
tener sus entradas DT_NEEDED agregadas. El comportamiento predeterminado puede ser
restaurado con --no-copia-dt-entradas-necesarias.

Esta opción también tiene un efecto sobre la resolución de los símbolos en
bibliotecas dinámicas. Con --copiar-dt-entradas-necesarias bibliotecas dinámicas
mencionado en la línea de comando se buscará de forma recursiva,
siguiendo sus etiquetas DT_NEEDED a otras bibliotecas, con el fin de
resolver los símbolos requeridos por el binario de salida. Con el valor predeterminado
configurando sin embargo la búsqueda de bibliotecas dinámicas que le siguen
se detendrá con la propia biblioteca dinámica. No habrá enlaces DT_NEEDED
ser atravesado para resolver símbolos.

--cref
Genere una tabla de referencia cruzada. Si un archivo de mapa del vinculador se está
generado, la tabla de referencias cruzadas se imprime en el archivo de mapa.
De lo contrario, se imprime en la salida estándar.

El formato de la tabla es intencionalmente simple, por lo que puede ser
procesado fácilmente por un script si es necesario. Los simbolos estan impresos
fuera, ordenados por nombre. Para cada símbolo, se muestra una lista de nombres de archivo.
dado. Si el símbolo está definido, el primer archivo de la lista es el
ubicación de la definición. Si el símbolo se define como común
valor, a continuación, aparecerán los archivos en los que esto suceda. Finalmente cualquiera
se enumeran los archivos que hacen referencia al símbolo.

--no-define-común
Esta opción inhibe la asignación de direcciones a símbolos comunes.
El comando de script "INHIBIT_COMMON_ALLOCATION" tiene el mismo efecto.

El --no-define-común opción permite desvincular la decisión de
Asignar direcciones a símbolos comunes a partir de la elección de la salida.
Tipo de archivo; de lo contrario, un tipo de salida no reubicable fuerza la asignación
direcciones a símbolos comunes. Utilizando --no-define-común permite
Los símbolos comunes a los que se hace referencia desde una biblioteca compartida
direcciones asignadas solo en el programa principal. Esto elimina el
espacio duplicado no utilizado en la biblioteca compartida, y también evita cualquier
posible confusión sobre la resolución del duplicado incorrecto cuando hay
Hay muchos módulos dinámicos con rutas de búsqueda especializadas para el tiempo de ejecución.
resolución de símbolo.

--defsym =símbolo=expresión
Cree un símbolo global en el archivo de salida, que contenga el valor absoluto
dirección dada por expresión. Puede utilizar esta opción tantas veces
según sea necesario para definir varios símbolos en la línea de comando. A
forma limitada de aritmética es compatible con el expresión en este
contexto: puede dar una constante hexadecimal o el nombre de una
símbolo existente, o use "+" y "-" para sumar o restar hexadecimal
constantes o símbolos. Si necesita expresiones más elaboradas,
considere usar el lenguaje de comandos del vinculador desde un script. Nota:
no debe haber espacios en blanco entre símbolo, el signo igual
("=") y expresión.

--demangle [=papa]
--no-exigir
Estas opciones controlan si exigir nombres de símbolos por error.
mensajes y otros resultados. Cuando se le dice al enlazador que demangle,
intenta presentar los nombres de los símbolos de una manera legible: elimina
guiones bajos iniciales si son utilizados por el formato de archivo de objeto, y
convierte los nombres de símbolos alterados de C ++ en nombres legibles por el usuario.
Los diferentes compiladores tienen diferentes estilos de alteración. El opcional
El argumento de estilo exigente se puede utilizar para elegir un
exigiendo estilo para su compilador. El enlazador exigirá
predeterminado a menos que la variable de entorno COLECCIONAR_NO_DEMANGLE se establece.
Estas opciones se pueden utilizar para anular las predeterminadas.

-Ipresentar
- enlazador-dinámico =presentar
Establezca el nombre del vinculador dinámico. Esto solo es significativo cuando
generar ejecutables ELF vinculados dinámicamente. La dinámica predeterminada
el enlazador es normalmente correcto; no use esto a menos que sepa lo que
estás haciendo.

--no-enlazador-dinámico
Al producir un archivo ejecutable, omita la solicitud de una dinámica
enlazador para ser utilizado en tiempo de carga. Esto solo es significativo para ELF
ejecutables que contienen reubicaciones dinámicas y, por lo general, requieren
código de punto de entrada que sea capaz de procesar estas reubicaciones.

- advertencias fatales
- advertencias no fatales
Trate todas las advertencias como errores. El comportamiento predeterminado puede ser
restaurado con la opción - advertencias no fatales.

--force-exe-sufijo
Asegúrese de que un archivo de salida tenga un sufijo .exe.

Si un archivo de salida totalmente vinculado construido con éxito no tiene un
sufijo ".exe" o ".dll", esta opción obliga al vinculador a copiar el
archivo de salida a uno del mismo nombre con un sufijo ".exe". Esta
La opción es útil cuando se utilizan archivos MAKE Unix sin modificar en un
Host de Microsoft Windows, ya que algunas versiones de Windows no ejecutarán
imagen a menos que termine en un sufijo ".exe".

--gc-secciones
--no-gc-secciones
Habilite la recolección de basura de las secciones de entrada no utilizadas. Es ignorado
en objetivos que no admiten esta opción. El comportamiento predeterminado
(de no realizar esta recolección de basura) puede ser restaurado por
especificando --no-gc-secciones en la línea de comando. Tenga en cuenta que la basura
se admite la recopilación de formatos COFF y PE, pero
Actualmente, la implementación se considera experimental.

--gc-secciones decide qué secciones de entrada se utilizan examinando
símbolos y reubicaciones. La sección que contiene el símbolo de entrada
y todas las secciones que contienen símbolos indefinidos en la línea de comandos
se mantendrán, al igual que las secciones que contienen símbolos a los que hace referencia
objetos dinámicos. Tenga en cuenta que al crear bibliotecas compartidas,
El vinculador debe asumir que se hace referencia a cualquier símbolo visible. Una vez
Este conjunto inicial de secciones ha sido determinado, el enlazador
recursivamente marca como usada cualquier sección referenciada por su
reubicaciones. Ver --entrada y --indefinido.

Esta opción se puede configurar al hacer un enlace parcial (habilitado con
opción -r). En este caso, la raíz de los símbolos guardados debe ser
explícitamente especificado por un --entrada or --indefinido Opción o
mediante un comando "ENTRY" en el script del enlazador.

--print-gc-secciones
--no-imprimir-secciones-gc
Enumere todas las secciones eliminadas por la recolección de basura. El listado es
impreso en stderr. Esta opción solo es efectiva si la basura
la recopilación se ha habilitado a través del --gc-secciones) opción. El
comportamiento predeterminado (de no enumerar las secciones que se eliminan)
se puede restaurar especificando --no-imprimir-secciones-gc en el comando
la línea.

- formato de salida de impresión
Imprima el nombre del formato de salida predeterminado (tal vez influenciado por
otras opciones de la línea de comandos). Esta es la cadena que aparecería
en un comando de secuencia de comandos del vinculador "OUTPUT_FORMAT".

- uso de memoria de impresión
Imprima el tamaño usado, el tamaño total y el tamaño usado de las regiones de memoria creadas
con el MEMORIA mando. Esto es útil en objetivos incrustados para
tener una vista rápida de la cantidad de memoria libre. El formato del
la salida tiene un título y una línea por región. Es tanto humano
legible y fácilmente analizable por herramientas. A continuación se muestra un ejemplo de
salida:

Región de memoria Tamaño utilizado Tamaño de la región% de antigüedad utilizado
ROM: 256 KB 1 MB 25.00%
RAM: 32 B 2 GB 0.00%

--ayuda
Imprima un resumen de las opciones de la línea de comandos en la salida estándar
y salir

--objetivo-ayuda
Imprima un resumen de todas las opciones específicas del objetivo en el estándar
salida y salida.

-Mapa =archivo de mapa
Imprima un mapa de vínculos al archivo archivo de mapa. Ver la descripción del
-M opción, arriba.

--no-guardar-memoria
ld normalmente optimiza la velocidad sobre el uso de la memoria almacenando en caché el
tablas de símbolos de archivos de entrada en la memoria. Esta opción dice ld a
en su lugar, optimice el uso de la memoria, volviendo a leer las tablas de símbolos
según sea necesario. Esto puede ser necesario si ld se queda sin espacio de memoria
al vincular un ejecutable grande.

--no indefinido
-z defensas
Informar referencias de símbolos no resueltas de archivos de objetos normales.
Esto se hace incluso si el vinculador está creando un elemento compartido no simbólico.
Biblioteca. El interruptor - [no-] allow-shlib-undefined controla el
comportamiento para informar referencias no resueltas encontradas en compartidos
bibliotecas vinculadas.

--permitir-definición-múltiple
-z Muldefs
Normalmente, cuando un símbolo se define varias veces, el vinculador
informar un error fatal. Estas opciones permiten múltiples definiciones y
se utilizará la primera definición.

--permitir-shlib-undefined
--no-allow-shlib-indefinido
Permite o no permite símbolos no definidos en bibliotecas compartidas. Esta
interruptor es similar a --no indefinido excepto que determina el
comportamiento cuando los símbolos indefinidos están en una biblioteca compartida en lugar de
que un archivo de objeto normal. No afecta lo indefinido
Se manejan los símbolos en archivos de objetos regulares.

El comportamiento predeterminado es informar errores para cualquier símbolo indefinido
referenciado en bibliotecas compartidas si el enlazador se utiliza para
crear un ejecutable, pero permitirlos si se está utilizando el vinculador
para crear una biblioteca compartida.

Las razones para permitir referencias de símbolo indefinidas en compartidas
las bibliotecas especificadas en el momento del enlace son las siguientes:

· Una biblioteca compartida especificada en el momento del enlace puede no ser la misma que
el que está disponible en el momento de la carga, por lo que el símbolo podría
realmente se puede resolver en el momento de la carga.

· Hay algunos sistemas operativos, por ejemplo, BeOS y HPPA, donde
Los símbolos indefinidos en las bibliotecas compartidas son normales.

El kernel de BeOS, por ejemplo, parchea las bibliotecas compartidas en carga
tiempo para seleccionar la función más apropiada para el
arquitectura actual. Esto se utiliza, por ejemplo, para
seleccione dinámicamente una función de memset apropiada.

--no-versión-indefinida
Normalmente, cuando un símbolo tiene una versión indefinida, el vinculador
ignoralo. Esta opción no permite los símbolos con versión indefinida y
en su lugar, se emitirá un error fatal.

--por defecto-symver
Cree y use una versión de símbolo predeterminada (el soname) para
símbolos exportados no versionados.

- predeterminado-importado-symver
Cree y use una versión de símbolo predeterminada (el soname) para
símbolos importados no versionados.

--no-advertir-desajuste
Normalmente ld dará un error si intenta vincular la entrada
archivos que no coinciden por alguna razón, tal vez porque
han sido compilados para diferentes procesadores o para diferentes
endianidades. Esta opción dice ld que debe permitir silenciosamente
tales posibles errores. Esta opción solo debe usarse con cuidado,
en los casos en que haya realizado alguna acción especial que garantice que
los errores del vinculador son inapropiados.

--no-warn-search-discordancia
Normalmente ld dará una advertencia si encuentra una biblioteca incompatible
durante una búsqueda en la biblioteca. Esta opción silencia la advertencia.

--no-archivo-completo
Desactive el efecto del --archivo completo opción para subsecuente
archivos de almacenamiento.

--noinhibit-ejecutivo
Conserve el archivo de salida ejecutable siempre que aún se pueda utilizar.
Normalmente, el enlazador no producirá un archivo de salida si
encuentra errores durante el proceso de enlace; sale sin escribir
un archivo de salida cuando emite cualquier error.

-nostdlib
Solo buscar directorios de bibliotecas especificados explícitamente en el comando
línea. Los directorios de la biblioteca especificados en los scripts del enlazador (incluidos
los scripts del enlazador especificados en la línea de comando) se ignoran.

--oformato =formato de salida
ld puede configurarse para admitir más de un tipo de archivo de objeto.
Si ld está configurado de esta manera, puede utilizar el --oformato opción
para especificar el formato binario para el archivo de objeto de salida. Incluso cuando
ld está configurado para admitir formatos de objetos alternativos, no
Por lo general, es necesario especificar esto, ya que ld debe configurarse para producir
como formato de salida predeterminado, el formato más habitual en cada máquina.
formato de salida es una cadena de texto, el nombre de un formato particular
soportado por las bibliotecas BFD. (Puede enumerar los binarios disponibles
formatos con volcado de objetos -i.) El comando de script "OUTPUT_FORMAT" puede
también especifique el formato de salida, pero esta opción lo anula.

-tarta
--pic-ejecutable
Cree un ejecutable independiente de la posición. Esto es solo actualmente
compatible con plataformas ELF. Los ejecutables independientes de la posición son
similar a las bibliotecas compartidas en que son reubicadas por el
enlazador dinámico a la dirección virtual que el sistema operativo elige para ellos
(que puede variar entre invocaciones). Como normal dinámicamente
ejecutables enlazados pueden ser ejecutados y los símbolos definidos en el
Las bibliotecas compartidas no pueden anular el ejecutable.

-qmagia
Esta opción se ignora por compatibilidad con Linux.

-Qy Esta opción se ignora por compatibilidad con SVR4.

--relajarse
--no-relajarse
Una opción con efectos dependientes de la máquina. Esta opción es solo
apoyado en algunos objetivos.

En algunas plataformas el --relajarse la opción realiza un objetivo específico,
optimizaciones globales que se vuelven posibles cuando el enlazador resuelve
direccionamiento en el programa, como modos de dirección relajantes,
sintetizar nuevas instrucciones, seleccionar una versión más corta de la actual
instrucciones y combinación de valores constantes.

En algunas plataformas, estas optimizaciones globales de tiempo de enlace pueden hacer
la depuración simbólica del ejecutable resultante es imposible. Esto es
conocido por ser el caso de la familia Matsushita MN10200 y MN10300
de procesadores.

En plataformas donde esto no es compatible, --relajarse es aceptado, pero
ignorado

En plataformas donde --relajarse se acepta la opcion --no-relajarse puede ser
utilizado para deshabilitar la función.

--retain-symbols-file =nombre de archivo
Conservar , solamente los símbolos enumerados en el archivo nombre de archivo, descartando todo
otros. nombre de archivo es simplemente un archivo plano, con un nombre de símbolo por
línea. Esta opción es especialmente útil en entornos (como
VxWorks) donde se acumula una gran tabla de símbolos globales
gradualmente, para conservar la memoria en tiempo de ejecución.

--retain-símbolos-archivono descartar los símbolos indefinidos, o
símbolos necesarios para las reubicaciones.

Solo puede especificar --retain-símbolos-archivo una vez en el comando
línea. Anula -s y -S.

-rpath =dir
Agregue un directorio a la ruta de búsqueda de la biblioteca en tiempo de ejecución. Esto se usa
al vincular un ejecutable ELF con objetos compartidos. Todo -rruta
Los argumentos se concatenan y pasan al enlazador de tiempo de ejecución, que
los usa para localizar objetos compartidos en tiempo de ejecución. El -rruta opción
también se utiliza para localizar objetos compartidos que son necesarios
objetos compartidos incluidos explícitamente en el enlace; ver la descripcion
de las -rpath-enlace opción. Si -rruta no se utiliza al vincular un
ELF ejecutable, el contenido de la variable de entorno.
"LD_RUN_PATH" se utilizará si está definido.

El -rruta La opción también se puede utilizar en SunOS. De forma predeterminada, en SunOS,
el vinculador formará una ruta de búsqueda en tiempo de ejecución de todos los -L
opciones que se le da. Si un -rruta se utiliza la opción, el tiempo de ejecución
La ruta de búsqueda se formará exclusivamente utilizando el -rruta opciones,
ignorando el -L opciones. Esto puede resultar útil cuando se utiliza gcc, que
agrega muchos -L opciones que pueden estar en sistemas de archivos montados en NFS.

Para compatibilidad con otros enlazadores ELF, si el -R opción es
seguido de un nombre de directorio, en lugar de un nombre de archivo, es
tratado como el -rruta .

-rpath-link =dir
Al usar ELF o SunOS, una biblioteca compartida puede requerir otra.
Esto sucede cuando un enlace "ld -shared" incluye una biblioteca compartida como
uno de los archivos de entrada.

Cuando el enlazador encuentra tal dependencia al realizar un
enlace compartido, no reubicable, intentará localizar automáticamente
la biblioteca compartida requerida e inclúyala en el enlace, si es
no incluido explícitamente. En tal caso, el -rpath-enlace opción
especifica el primer conjunto de directorios para buscar. los -rpath-enlace
La opción puede especificar una secuencia de nombres de directorio ya sea por
especificando una lista de nombres separados por dos puntos, o apareciendo
varias veces.

Esta opción debe usarse con precaución ya que anula la búsqueda
ruta que puede haber sido compilada en una biblioteca compartida. En
En tal caso, es posible utilizar involuntariamente un diferente
ruta de búsqueda de lo que haría el vinculador en tiempo de ejecución.

El vinculador utiliza las siguientes rutas de búsqueda para localizar los
bibliotecas compartidas:

1. Cualquier directorio especificado por -rpath-enlace .

2. Cualquier directorio especificado por -rruta opciones. La diferencia
entre -rruta y -rpath-enlace es que los directorios especificados por
-rruta Las opciones se incluyen en el ejecutable y se utilizan en
tiempo de ejecución, mientras que el -rpath-enlace La opción solo es efectiva en
tiempo de enlace. buscando -rruta de esta manera solo es compatible con
enlazadores nativos y reticuladores que se han configurado
con el --con-sysroot .

3. En un sistema ELF, para enlazadores nativos, si el -rruta y
-rpath-enlace no se utilizaron opciones, busque el contenido de la
variable de entorno "LD_RUN_PATH".

4. En SunOS, si el -rruta no se utilizó la opción, busque cualquier
directorios especificados usando -L .

5. Para un vinculador nativo, busque el contenido del entorno.
variable "LD_LIBRARY_PATH".

6. Para un vinculador ELF nativo, los directorios en "DT_RUNPATH" o
"DT_RPATH" de una biblioteca compartida se buscan compartidos
bibliotecas que necesita. Las entradas "DT_RPATH" se ignoran si
Existen entradas "DT_RUNPATH".

7. Los directorios predeterminados, normalmente / lib y / Usr / lib.

8. Para un vinculador nativo en un sistema ELF, si el archivo
/etc/ld.so.conf existe, la lista de directorios que se encuentran en ese
archivo.

Si no se encuentra la biblioteca compartida requerida, el vinculador emitirá
una advertencia y continúe con el enlace.

-compartido
-Bcompartible
Crea una biblioteca compartida. Esto actualmente solo es compatible con ELF,
Plataformas XCOFF y SunOS. En SunOS, el vinculador automáticamente
crear una biblioteca compartida si el -e La opción no se utiliza y hay
símbolos indefinidos en el enlace.

- ordenado común
--sort-common = ascendente
--sort-common = descendente
Esta opción dice ld para ordenar los símbolos comunes por alineación en
orden ascendente o descendente cuando los coloca en el
secciones de salida apropiadas. Las alineaciones de símbolo consideradas son
dieciséis bytes o más, ocho bytes, cuatro bytes, dos bytes y uno
byte. Esto es para evitar espacios entre símbolos debido a la alineación.
limitaciones. Si no se especifica ningún orden de clasificación, entonces descendente
se asume el orden.

--sort-section = nombre
Esta opción aplicará "SORT_BY_NAME" a todas las secciones de comodines
patrones en el script del enlazador.

--sort-section = alineación
Esta opción aplicará "SORT_BY_ALIGNMENT" a todas las secciones de comodines
patrones en el script del enlazador.

- dividido por archivo [=tamaño]
Similar a - dividido por reloc pero crea una nueva sección de salida para
cada archivo de entrada cuando tamaño sea alcanzado. tamaño predeterminado en un tamaño de 1
si no se da.

--split-by-reloc [=contar]
Intenta crear secciones adicionales en el archivo de salida para que no
La sección de salida única en el archivo contiene más de contar
reubicaciones. Esto es útil cuando se generan grandes archivos reubicables.
para descargar en ciertos kernels en tiempo real con el objeto COFF
formato de archivo; ya que COFF no puede representar más de 65535
reubicaciones en un solo tramo. Tenga en cuenta que esto no funcionará
con formatos de archivo de objeto que no admiten secciones arbitrarias.
El vinculador no dividirá las secciones de entrada individuales para
redistribución, por lo que si una sola sección de entrada contiene más de
contar reubicaciones, una sección de salida contendrá tantos
reubicaciones. contar tiene un valor predeterminado de 32768.

- estadísticas
Calcular y mostrar estadísticas sobre el funcionamiento del enlazador,
como el tiempo de ejecución y el uso de la memoria.

--sysroot =directorio
Uso directorio como la ubicación del sysroot, anulando el
tiempo de configuración predeterminado. Esta opción solo es compatible con enlazadores
que fueron configurados usando --con-sysroot.

--formato-tradicional
Para algunos objetivos, la salida de ld es diferente en algunos aspectos de
la salida de algún enlazador existente. Este cambio solicita ld que se utilizará
en su lugar, el formato tradicional.

Por ejemplo, en SunOS, ld combina entradas duplicadas en el símbolo
tabla de cuerdas. Esto puede reducir el tamaño de un archivo de salida con
depurar información en más del 30 por ciento. Desafortunadamente, SunOS
El programa "dbx" no puede leer el programa resultante ("gdb" no tiene
problema). El --formato-tradicional interruptor dice ld no combinar
entradas duplicadas.

--section-start =Nombre de la sección=org
Busque una sección en el archivo de salida en la dirección absoluta dada
by org. Puede utilizar esta opción tantas veces como sea necesario para
localizar varias secciones en la línea de comando. org debe ser un soltero
entero hexadecimal; para compatibilidad con otros enlazadores, puede
omitir el líder 0x generalmente asociado con valores hexadecimales.
Nota: no debe haber espacios en blanco entre Nombre de la sección, el
signo de igual ("=") y org.

-Tbss =org
-Tdata =org
-Ttext =org
Igual que --sección-inicio, con ".bss", ".data" o ".text" como
Nombre de la sección.

-Ttext-segmento =org
Al crear un ejecutable ELF, establecerá la dirección del
primer byte del segmento de texto.

-Segmento de trodatos =org
Al crear un objeto ejecutable o compartido ELF para un objetivo donde
los datos de solo lectura están en su propio segmento separado del
texto ejecutable, establecerá la dirección del primer byte del
segmento de datos de solo lectura.

-Tldata-segmento =org
Al crear un objeto ejecutable o compartido ELF para medio x86-64
modelo de memoria, establecerá la dirección del primer byte del
segmento de datos.

--unresolved-symbols =Método
Determine cómo manejar los símbolos no resueltos. Existen cuatro
posibles valores para Método:

ignora todo
No informe ningún símbolo sin resolver.

informar-todo
Informe todos los símbolos sin resolver. Este es el predeterminado.

ignorar-en-archivos-objeto
Informar los símbolos no resueltos que se encuentran en compartidos
bibliotecas, pero ignórelas si provienen de un objeto regular
archivos.

ignorar en bibliotecas compartidas
Informar los símbolos no resueltos que provienen de archivos de objetos normales,
pero ignórelos si provienen de bibliotecas compartidas. Esto puede
ser útil al crear un binario dinámico y se sabe que
todas las bibliotecas compartidas a las que debería hacer referencia son
incluido en la línea de comando del enlazador.

El comportamiento de las bibliotecas compartidas por sí mismas también puede ser
controlado por el - [no-] allow-shlib-undefined .

Normalmente, el vinculador generará un mensaje de error para cada
símbolo informado no resuelto pero la opción --advertir-símbolos-no resueltos
puede cambiar esto a una advertencia.

--dll-detallado
--verbose [=NÚMERO]
Muestra el número de versión de ld y enumerar las emulaciones del enlazador
soportado. Muestra qué archivos de entrada se pueden y no se pueden abrir.
Muestra la secuencia de comandos del vinculador que utiliza el vinculador. Si el opcional
NÚMERO argumento> 1, también se mostrará el estado del símbolo del complemento.

--version-script =versión-scriptfile
Especifique el nombre de un script de versión para el vinculador. Esto es
normalmente se utiliza al crear bibliotecas compartidas para especificar más
información sobre la jerarquía de versiones de la biblioteca
creado. Esta opción solo es totalmente compatible con las plataformas ELF.
que admiten bibliotecas compartidas; ver VERSIÓN. Es parcialmente
compatible con plataformas PE, que pueden usar scripts de versión para filtrar
Visibilidad del símbolo en el modo de exportación automática: cualquier símbolo marcado local in
el script de la versión no se exportará.

- advertencia-común
Advertir cuando un símbolo común se combina con otro símbolo común o
con una definición de símbolo. Los enlazadores Unix permiten esto algo descuidado
práctica, pero los enlazadores en algunos otros sistemas operativos no lo hacen. Esta
La opción le permite encontrar problemas potenciales al combinar
símbolos. Desafortunadamente, algunas bibliotecas de C usan esta práctica, por lo que
puede recibir algunas advertencias sobre símbolos en las bibliotecas, así como en
sus programas.

Hay tres tipos de símbolos globales, ilustrados aquí por C
ejemplos:

int i = 1;
Una definición, que va en la sección de datos inicializados del
archivo de salida.

externo int i;
Una referencia indefinida, que no asigna espacio. Ahí
debe ser una definición o un símbolo común para la variable
en algún lugar.

int i;
Un símbolo común. Si solo hay (uno o más) comunes
símbolos para una variable, va en el área de datos no inicializados
del archivo de salida. El vinculador fusiona varios símbolos comunes
para la misma variable en un solo símbolo. Si son de
diferentes tamaños, elige el tamaño más grande. El enlazador se convierte en
símbolo común en una declaración, si hay una definición de
la misma variable.

El - advertencia-común La opción puede producir cinco tipos de advertencias. Cada
La advertencia consta de un par de líneas: la primera describe el símbolo
recién encontrado, y el segundo describe el símbolo anterior
encontrado con el mismo nombre. Uno o ambos de los dos símbolos
será un símbolo común.

1. Convertir un símbolo común en una referencia, porque hay
ya una definición para el símbolo.

( ): advertencia: común de ` '
anulado por definición
( ): advertencia: definido aquí

2. Convertir un símbolo común en una referencia, porque un símbolo posterior
se encuentra la definición del símbolo. Esto es lo mismo que
el caso anterior, excepto que los símbolos se encuentran en un
orden diferente.

( ): advertencia: definición de ` '
primordial común
( ): advertencia: lo común está aquí

3. Fusionar un símbolo común con un común anterior del mismo tamaño
símbolo.

( ): advertencia: múltiples comunes
de '
( ): advertencia: el común anterior está aquí

4. Fusionar un símbolo común con un símbolo común anterior más grande.

( ): advertencia: común de ` '
anulado por un común más grande
( ): advertencia: el común más grande está aquí

5. Fusionar un símbolo común con un símbolo común más pequeño anterior.
Este es el mismo que el caso anterior, excepto que los símbolos
se encuentran en un orden diferente.

( ): advertencia: común de ` '
anulando el común más pequeño
( ): advertencia: el común más pequeño está aquí

--advertir-constructores
Advertir si se utilizan constructores globales. Esto solo es útil para
algunos formatos de archivo de objeto. Para formatos como COFF o ELF, el
El enlazador no puede detectar el uso de constructores globales.

--advertir-multiple-gp
Advertir si se requieren varios valores de puntero global en la salida
Archivo. Esto solo es significativo para ciertos procesadores, como el
Alfa. Específicamente, algunos procesadores colocan constantes de gran valor en
una sección especial. Un registro especial (el puntero global) apunta
en el medio de esta sección, para que las constantes se puedan cargar
eficientemente a través de un modo de direccionamiento relativo de registro base. Ya que
el desplazamiento en el modo relativo de registro base es fijo y relativamente
pequeño (por ejemplo, 16 bits), esto limita el tamaño máximo de la constante
piscina. Por tanto, en programas grandes, a menudo es necesario utilizar
múltiples valores de puntero global para poder abordar todos
posibles constantes. Esta opción hace que se emita una advertencia
siempre que ocurra este caso.

- advertir una vez
Solo advertir una vez por cada símbolo indefinido, en lugar de una vez por
módulo que se refiere a él.

--advertir-sección-alinear
Advertir si la dirección de una sección de salida se cambia debido a
alineación. Normalmente, la alineación se establecerá mediante una entrada
sección. La dirección solo se cambiará si no es explícitamente
especificado; es decir, si el comando "SECCIONES" no especifica un
dirección de inicio de la sección.

--advertir-textrel-compartido
Advierte si el vinculador agrega un DT_TEXTREL a un objeto compartido.

- advertir-alternar-em
Advierte si un objeto tiene un código de máquina ELF alternativo.

--advertir-símbolos-no resueltos
Si el vinculador va a informar un símbolo no resuelto (consulte el
opción --símbolos-no resueltos) normalmente generará un error.
Esta opción hace que genere una advertencia en su lugar.

--error-no resuelto-símbolos
Esto restaura el comportamiento predeterminado del vinculador de generar errores.
cuando informa símbolos no resueltos.

--archivo completo
Para cada archivo mencionado en la línea de comando después de la
--archivo completo opción, incluya cada archivo de objeto en el archivo en
el enlace, en lugar de buscar en el archivo el objeto requerido
archivos. Esto se usa normalmente para convertir un archivo comprimido en un archivo compartido.
biblioteca, lo que obliga a que todos los objetos se incluyan en la biblioteca resultante
biblioteca compartida. Esta opción se puede utilizar más de una vez.

Dos notas al usar esta opción de gcc: Primero, gcc no sabe
acerca de esta opción, por lo que debe utilizar -Wl, -whole-archive. Segundo,
no te olvides de usar -Wl, -no-archivo-completo después de tu lista de
archivos, porque gcc agregará su propia lista de archivos a su
enlace y es posible que no desee que esta bandera los afecte también.

--wrap =símbolo
Utilice una función de envoltura para símbolo. Cualquier referencia indefinida a
símbolo se resolverá en "__wrap_símbolo". Cualquiera indefinido
referencia a "__real_símbolo" será resuelto a símbolo.

Esto se puede utilizar para proporcionar un contenedor para una función del sistema. El
La función contenedora debe llamarse "__wrap_símbolo". Si lo desea
llamar a la función del sistema, debería llamar "__real_símbolo".

Aquí hay un ejemplo trivial:

nulo *
__wrap_malloc (tamaño_t c)
{
printf ("malloc llamado con% zu \ n", c);
devuelve __real_malloc (c);
}

Si vincula otro código con este archivo usando --envoltura malloc, entonces todo
las llamadas a "malloc" llamarán a la función "__wrap_malloc" en su lugar.
La llamada a "__real_malloc" en "__wrap_malloc" llamará al real
función "malloc".

Es posible que desee proporcionar una función "__real_malloc" también, para que
enlaces sin el --envoltura La opción tendrá éxito. Si haces esto,
no debe poner la definición de "__real_malloc" en el mismo archivo
como "__wrap_malloc"; si lo hace, el ensamblador puede resolver la llamada
antes de que el enlazador tenga la oportunidad de ajustarlo a "malloc".

--eh-marco-hdr
Solicitar la creación de la sección ".eh_frame_hdr" y ELF
Encabezado del segmento "PT_GNU_EH_FRAME".

--no-ld-genera-información-de-desenrollado
Solicitar la creación de ".eh_frame" desenrollar información para el vinculador generado
secciones de código como PLT. Esta opción está activada de forma predeterminada si el vinculador
Se admite la información de desenrollado generada.

--habilitar-nuevas-etiquetas
--disable-nuevas-etiquetas
Este enlazador puede crear las nuevas etiquetas dinámicas en ELF. Pero el mayor
Es posible que los sistemas ELF no los entiendan. Si especifica
--habilitar-nuevas-etiquetas, las nuevas etiquetas dinámicas se crearán según sea necesario
y se omitirán las etiquetas dinámicas más antiguas. Si especifica
--disable-nuevas-etiquetas, no se crearán nuevas etiquetas dinámicas. Por
por defecto, las nuevas etiquetas dinámicas no se crean. Tenga en cuenta que esos
Las opciones solo están disponibles para sistemas ELF.

--hash-size =número
Establecer el tamaño predeterminado de las tablas hash del vinculador a un número primo
cerca de número. Incrementar este valor puede reducir la longitud de
tiempo que le toma al enlazador realizar sus tareas, a expensas de
aumentando los requisitos de memoria del enlazador. De manera similar reduciendo
este valor puede reducir los requisitos de memoria a expensas de
velocidad.

--hash-style =papa
Establezca el tipo de tabla (s) hash del vinculador. papa puede ser "sysv"
para la sección clásica de ELF ".hash", "gnu" para el nuevo estilo GNU
sección ".gnu.hash" o "ambos" para el clásico ELF ".hash" y
tablas hash GNU ".gnu.hash" de nuevo estilo. El predeterminado es "sysv".

--compress-debug-section = ninguno
--compress-debug-section = zlib
--compress-debug-section = zlib-gnu
--compress-debug-section = zlib-gabi
En las plataformas ELF, estas opciones controlan cómo depuran las secciones DWARF
se comprimen mediante zlib. --compress-debug-section = ninguno no se
comprime las secciones de depuración DWARF. --compress-debug-section = zlib-gnu
comprime las secciones de depuración DWARF y cambia el nombre de las secciones de depuración a
empezar con .zdebug en lugar de .depurar.
--compress-debug-section = zlib y
--compress-debug-section = zlib-gabi comprimir secciones de depuración DWARF
con SHF_COMPRESSED del ELF ABI. El comportamiento predeterminado varía
dependiendo del objetivo involucrado y las opciones de configuración utilizadas
para construir la cadena de herramientas. El valor predeterminado se puede determinar examinando
la salida del enlazador --ayuda .

--reducir los gastos generales de memoria
Esta opción reduce los requisitos de memoria en el tiempo de ejecución de ld, en el
gasto de velocidad de enlace. Esto se introdujo para seleccionar el antiguo
Algoritmo O (n ^ 2) para la generación de archivos de mapas de enlaces, en lugar del nuevo
Algoritmo O (n) que utiliza aproximadamente un 40% más de memoria para el almacenamiento de símbolos.

Otro efecto del cambio es establecer el tamaño predeterminado de la tabla hash.
a 1021, que de nuevo ahorra memoria a costa de alargar la
tiempo de ejecución del enlazador. Sin embargo, esto no se hace si el - tamaño hash
se ha utilizado el interruptor.

El --reducir los gastos generales de memoria El interruptor también se puede utilizar para habilitar
otras compensaciones en futuras versiones del enlazador.

--construir-id
--build-id =papa
Solicite la creación de una sección de notas ELF ".note.gnu.build-id" o
una sección COFF ".buildid". El contenido de la nota es único.
bits que identifican este archivo vinculado. papa puede ser "uuid" para usar 128
bits aleatorios, "sha1" para utilizar un hash SHA160 de 1 bits en la normativa
partes del contenido de salida, "md5" para usar un hash MD128 de 5 bits en
las partes normativas del contenido de salida, o "0xcadena hexadecimal " que se utilizará
una cadena de bits elegida especificada como un número par de hexadecimales
dígitos (se ignoran los caracteres "-" y ":" entre pares de dígitos).
If papa se omite, se utiliza "sha1".

Los estilos "md5" y "sha1" producen un identificador que siempre es
lo mismo en un archivo de salida idéntico, pero será único entre todos
archivos de salida no idénticos. No está destinado a ser comparado como un
suma de comprobación para el contenido del archivo. Se puede cambiar un archivo vinculado
más tarde por otras herramientas, pero la cadena de bits de ID de compilación que identifica el
el archivo vinculado original no cambia.

Pasando "ninguno" por papa desactiva la configuración de cualquier "--build-id"
opciones anteriormente en la línea de comando.

El enlazador i386 PE admite la -compartido opción, que hace que la salida
para ser una biblioteca enlazada dinámicamente (DLL) en lugar de una biblioteca normal
ejecutable. Debería nombrar la salida "* .dll" cuando use este
opción. Además, el vinculador es totalmente compatible con el estándar "* .def"
archivos, que se pueden especificar en la línea de comando del vinculador como un objeto
archivo (de hecho, debe preceder a los archivos de los que exporta símbolos, a
asegúrese de que se vinculen, como un archivo de objeto normal).

Además de las opciones comunes a todos los objetivos, el enlazador i386 PE
admite opciones de línea de comando adicionales que son específicas del i386
Objetivo de educación física. Las opciones que toman valores pueden estar separadas de sus valores
mediante un espacio o un signo igual.

--add-stdcall-alias
Si se dan, los símbolos con un sufijo de llamada estándar (@nn) se exportarán como-
es y también con el sufijo despojado. [Esta opción es específica para
el puerto de destino i386 PE del enlazador]

- archivo base presentar
Uso presentar como el nombre de un archivo en el que guardar las direcciones base
de todas las reubicaciones necesarias para generar DLL con herramienta dll.
[Esta es una opción específica de i386 PE]

--dll
Cree una DLL en lugar de un ejecutable normal. También puede utilizar
-compartido o especificar una "BIBLIOTECA" en un archivo ".def" dado. [Esta
La opción es específica del puerto de destino i386 PE del enlazador]

--enable-nombres-de-sección-largos
--disable-nombres-de-secciones-largas
Las variantes PE del formato de objeto COFF añaden una extensión que
permite el uso de nombres de sección de más de ocho caracteres, el
límite normal para COFF. De forma predeterminada, estos nombres solo se permiten en
archivos de objeto, ya que las imágenes ejecutables totalmente vinculadas no llevan la
Se requiere la tabla de cadenas COFF para admitir los nombres más largos. Como GNU
extensión, es posible permitir su uso en imágenes ejecutables
también, o para (¡probablemente inútil!) no permitirlo en el objeto
archivos, utilizando estas dos opciones. Imágenes ejecutables generadas
con estos nombres de sección largos son ligeramente no estándar, llevando
como lo hacen con una tabla de cadenas, y pueden generar una salida confusa cuando
examinados con herramientas que no son compatibles con GNU PE, como visores de archivos y
volquetes. Sin embargo, GDB se basa en el uso de nombres de sección largos de PE
para encontrar secciones de información de depuración de Dwarf-2 en una imagen ejecutable
en tiempo de ejecución, por lo que si no se especifica ninguna opción en el comando-
línea, ld habilitará nombres de sección largos, anulando los valores predeterminados y
comportamiento técnicamente correcto, cuando encuentra la presencia de depuración
información al vincular una imagen ejecutable y no eliminar
símbolos. [Esta opción es válida para todos los puertos de destino PE del
enlazador]

--enable-stdcall-reparación
--disable-stdcall-fixup
Si el vínculo encuentra un símbolo que no puede resolver, intentará
para hacer "enlaces difusos" buscando otro símbolo definido que
difiere solo en el formato del nombre del símbolo (cdecl vs stdcall)
y resolverá ese símbolo vinculándolo al partido. Por ejemplo,
el símbolo indefinido "_foo" podría estar vinculado a la función
"_foo @ 12", o el símbolo indefinido "_bar @ 16" pueden estar vinculados al
función "_bar". Cuando el enlazador hace esto, imprime una advertencia,
ya que normalmente debería haber fallado al vincular, pero a veces importa
las bibliotecas generadas a partir de dlls de terceros pueden necesitar esta función para
ser utilizable. Si especifica --enable-stdcall-reparación, esta característica es
totalmente habilitado y las advertencias no se imprimen. Si especifica
--disable-stdcall-fixup, esta función está deshabilitada y tal
los desajustes se consideran errores. [Esta opción es específica
al puerto de destino i386 PE del enlazador]

- subrayado principal
- sin subrayado principal
Para la mayoría de los objetivos, el prefijo de símbolo predeterminado es un guión bajo y es
definido en la descripción del objetivo. Con esta opción es posible
deshabilitar / habilitar el prefijo de símbolo de subrayado predeterminado.

--exportar-todos-los-símbolos
Si se dan, todos los símbolos globales en los objetos usados ​​para construir una DLL
será exportado por la DLL. Tenga en cuenta que este es el valor predeterminado si
de lo contrario, no habría ningún símbolo exportado. Cuando los símbolos son
exportados explícitamente a través de archivos DEF o exportados implícitamente a través de
atributos de función, el valor predeterminado es no exportar nada más
a menos que se dé esta opción. Tenga en cuenta que los símbolos "DllMain @ 12",
"DllEntryPoint @ 0", "DllMainCRTStartup @ 12" y "impure_ptr"
no se exporta automáticamente. Además, los símbolos importados de otros
Las DLL no se volverán a exportar, ni los símbolos que especifiquen las DLL
diseño interno como los que comienzan con "_head_" o terminan
con "_iname". Además, no hay símbolos de "libgcc", "libstd ++",
Se exportará "libmingw32" o "crtX.o". Símbolos cuyos nombres
comenzar con "__rtti_" o "__builtin_" no se exportarán, para ayudar
con DLL de C ++. Finalmente, hay una lista extensa de cygwin-
símbolos privados que no se exportan (obviamente, esto se aplica en
al crear archivos DLL para objetivos cygwin). Estas exclusiones de cygwin son:
"_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" y "environment". [Esta opción
es específico del puerto de destino i386 PE del enlazador]

--excluir-símbolos símbolo,símbolo, ...
Especifica una lista de símbolos que no deben ser automáticamente
exportado. Los nombres de los símbolos pueden estar delimitados por comas o dos puntos.
[Esta opción es específica del puerto de destino i386 PE del
enlazador]

--excluir-todos-los-símbolos
Especifica que no se deben exportar símbolos automáticamente. [Esta
La opción es específica del puerto de destino i386 PE del enlazador]

- alineación de archivos
Especifique la alineación del archivo. Las secciones del archivo siempre comenzarán
en compensaciones de archivo que son múltiplos de este número. Este valor predeterminado
a 512. [Esta opción es específica para el puerto de destino i386 PE de
el enlazador]

--montón reserva
--montón reserva,hacer
Especifique el número de bytes de memoria para reservar (y opcionalmente
commit) para ser utilizado como montón para este programa. El valor predeterminado es 1 MB.
reservado, 4K comprometido. [Esta opción es específica del i386 PE
puerto de destino del enlazador]

--imagen-base propuesta de
Uso propuesta de como la dirección base de su programa o dll. Este es el
la ubicación de memoria más baja que se utilizará cuando su programa o dll
está cargado. Para reducir la necesidad de reubicarse y mejorar el desempeño.
de sus dlls, cada uno debe tener una dirección base única y no
superponer cualquier otro dll. El valor predeterminado es 0x400000 para ejecutables,
y 0x10000000 para dlls. [Esta opción es específica del i386 PE
puerto de destino del enlazador]

- matanza
Si se dan, los sufijos de stdcall (@nn) se eliminarán de los símbolos
antes de exportarlos. [Esta opción es específica del i386 PE
puerto de destino del enlazador]

--consciente de direcciones grandes
Si se da, el bit apropiado en el campo "Características" del
El encabezado COFF está configurado para indicar que este ejecutable admite
direcciones virtuales de más de 2 gigabytes. Esto debe usarse en
junto con / 3GB o / USERVA =propuesta de interruptor de megabytes en el
Sección "[sistemas operativos]" de BOOT.INI. De lo contrario, este poco
no tiene efecto. [Esta opción es específica para los puertos de destino PE de
el enlazador]

--disable-large-address-awareness
Revierte el efecto de un anterior --consciente de direcciones grandes .
Esto es útil si --consciente de direcciones grandes siempre está establecido por el
controlador del compilador (por ejemplo, Cygwin gcc) y el ejecutable no
admite direcciones virtuales de más de 2 gigabytes. [Esta opción
es específico de los puertos de destino PE del enlazador]

--major-imagen-versión propuesta de
Establece el número principal de la "versión de la imagen". Por defecto es 1.
[Esta opción es específica del puerto de destino i386 PE del
enlazador]

--major-versión-os propuesta de
Establece el número principal de la "versión del sistema operativo". El valor predeterminado es 4. [Este
La opción es específica del puerto de destino i386 PE del enlazador]

--principal-subsistema-versión propuesta de
Establece el número principal de la "versión del subsistema". Por defecto es 4.
[Esta opción es específica del puerto de destino i386 PE del
enlazador]

- versión-de-imagen-menor propuesta de
Establece el número menor de la "versión de la imagen". El valor predeterminado es 0.
[Esta opción es específica del puerto de destino i386 PE del
enlazador]

- versión-os-menor propuesta de
Establece el número menor de la "versión del sistema operativo". El valor predeterminado es 0. [Este
La opción es específica del puerto de destino i386 PE del enlazador]

--versión-subsistema-menor propuesta de
Establece el número menor de la "versión del subsistema". El valor predeterminado es 0.
[Esta opción es específica del puerto de destino i386 PE del
enlazador]

--salida-def presentar
El vinculador creará el archivo presentar que contendrá un archivo DEF
correspondiente a la DLL que genera el enlazador. Este archivo DEF
(que debería llamarse "* .def") se puede utilizar para crear una importación
biblioteca con "dlltool" o se puede utilizar como referencia a
símbolos exportados de forma automática o implícita. [Esta opción es
específico del puerto de destino i386 PE del enlazador]

--out-imlib presentar
El vinculador creará el archivo presentar que contendrá una importación
lib correspondiente a la DLL que genera el enlazador. Esta importación
lib (que debería llamarse "* .dll.a" o "* .a" se puede utilizar para vincular
clientes contra la DLL generada; este comportamiento lo hace posible
para omitir un paso de creación de biblioteca de importación "dlltool" independiente. [Esta
La opción es específica del puerto de destino i386 PE del enlazador]

--habilitar-base-de-imagen-automática
--enable-auto-image-base =propuesta de
Elija automáticamente la base de la imagen para los archivos DLL, opcionalmente comenzando
con base propuesta de, a menos que se especifique uno usando el "--image-base"
argumento. Mediante el uso de un hash generado a partir de dllname para crear
bases de imagen únicas para cada DLL, colisiones en memoria y
Se evitan las reubicaciones que pueden retrasar la ejecución del programa. [Esta
La opción es específica del puerto de destino i386 PE del enlazador]

--desactivar-base-de-imagen-automática
No genere automáticamente una base de imagen única. Si no hay
base de imagen especificada por el usuario ("--image-base") y luego usa la plataforma
defecto. [Esta opción es específica para el puerto de destino i386 PE de
el enlazador]

--dll-búsqueda-prefijo cadena
Al vincular dinámicamente a una dll sin una biblioteca de importación, busque
por " .dll "en lugar de" lib .dll ".
Este comportamiento permite una fácil distinción entre las DLL creadas para el
varias "subplataformas": native, cygwin, uwin, pw, etc. Para
Por ejemplo, las DLL de cygwin suelen utilizar "--dll-search-prefix = cyg".
[Esta opción es específica del puerto de destino i386 PE del
enlazador]

--habilitar-importación automática
Hacer un enlace sofisticado de "_symbol" a "__imp__symbol" para los DATOS
importa desde DLL, y crea los símbolos de procesamiento necesarios cuando
construyendo las bibliotecas de importación con esas exportaciones de DATOS. Nota: uso de
la extensión 'auto-import' hará que la sección de texto del
archivo de imagen para que se pueda escribir. Esto no se ajusta a la PE-
Especificación de formato COFF publicada por Microsoft.

Nota: el uso de la extensión de 'importación automática' también causará solo lectura
datos que normalmente se colocarían en la sección .rdata para ser
colocado en la sección .data en su lugar. Esto es para que funcione
alrededor de un problema con consts que se describe aquí:
http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

El uso de 'importación automática' generalmente 'simplemente funcionará', pero a veces
puede ver este mensaje:

"variable" no se puede importar automáticamente. Lea la
documentación para "--enable-auto-import" de ld para más detalles. "

Este mensaje ocurre cuando alguna (sub) expresión accede a una dirección
dado en última instancia por la suma de dos constantes (tablas de importación de Win32
permitir solo uno). Las instancias en las que esto puede ocurrir incluyen accesos
a los campos miembro de las variables de estructura importadas desde una DLL, así
como usar un índice constante en una variable de matriz importada de un
DLL. Cualquier variable de varias palabras (matrices, estructuras, long long, etc.) puede
desencadenar esta condición de error. Sin embargo, independientemente de la exacta
tipo de datos de la variable exportada infractora, ld siempre detectará
, emita la advertencia y salga.

Hay varias formas de abordar esta dificultad, independientemente de
el tipo de datos de la variable exportada:

Una forma es utilizar el conmutador --enable-runtime-pseudo-reloc. Esto deja
la tarea de ajustar las referencias en su código de cliente para el tiempo de ejecución
entorno, por lo que este método solo funciona cuando el entorno de ejecución
admite esta función.

Una segunda solución es forzar una de las 'constantes' a ser una
variable, es decir, desconocida y no optimizable en tiempo de compilación.
Para arreglos, hay dos posibilidades: a) hacer que el índice (el
dirección de matriz) una variable, ob) hacer que el índice 'constante' sea un
variable. Por lo tanto:

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

or

extern type extern_array [];
matriz_extern [1] ->
{volátil int t = 1; matriz_extern [t]}

Para estructuras (y la mayoría de los otros tipos de datos de varias palabras), la única opción
es hacer la estructura en sí (o el long long, o el ...)
variable:

estructura externa s estructura_externa;
extern_struct.field ->
{estructura volátil s * t = & extern_struct; t-> campo}

or

externo largo largo externo_ll;
extern_ll ->
{volátil largo largo * local_ll = & extern_ll; * local_ll}

Un tercer método para lidiar con esta dificultad es abandonar
'auto-import' para el símbolo infractor y márquelo con
"__declspec (dllimport)". Sin embargo, en la práctica eso requiere el uso
#defines en tiempo de compilación para indicar si está creando una DLL,
compilar código de cliente que se vinculará a la DLL, o simplemente
construcción / vinculación a una biblioteca estática. Al tomar la decisión
entre los diversos métodos de resolución de la 'dirección directa con
problema de desplazamiento constante, debe considerar el típico problema del mundo real
uso:

Original:

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

Solución 1:

--foo.h
extern int arr [];
--foo.c
#include "foo.h"
void main (int argc, char ** argv) {
/ * Esta solución es para win32 y cygwin; no "optimizar" * /
volatile int * parr = arr;
printf ("% d \ n", parr [1]);
}

Solución 2:

--foo.h
/ * Nota: se asume la exportación automática (sin __declspec (dllexport)) * /
#if (definido (_WIN32) || definido (__ CYGWIN__)) && \
! (definido (FOO_BUILD_DLL) || definido (FOO_STATIC))
#define FOO_IMPORT __declspec (dllimport)
#else
#define FOO_IMPORTAR
#terminara si
extern FOO_IMPORT int arr [];
--foo.c
#include "foo.h"
void main (int argc, char ** argv) {
printf ("% d \ n", arr [1]);
}

Una cuarta forma de evitar este problema es volver a codificar su biblioteca para
utilizar una interfaz funcional en lugar de una interfaz de datos para el
variables ofensivas (p. ej. set_foo () y get_foo () accesor
funciones). [Esta opción es específica para el puerto de destino i386 PE
del enlazador]

--deshabilitar-importación automática
No intente realizar un enlace sofisticado de "_symbol" a
"__imp__symbol" para importaciones de DATOS desde DLL. [Esta opción es
específico del puerto de destino i386 PE del enlazador]

--enable-runtime-pseudo-reloc
Si su código contiene expresiones descritas en --enable-auto-import
sección, es decir, las importaciones de DATOS desde DLL con un desplazamiento distinto de cero, esto
switch creará un vector de 'pseudo reubicaciones en tiempo de ejecución' que
puede ser utilizado por el entorno de ejecución para ajustar las referencias a tales
datos en su código de cliente. [Esta opción es específica del i386 PE
puerto de destino del enlazador]

--disable-runtime-pseudo-reloc
No cree pseudo reubicaciones para importaciones de DATOS con compensación distinta de cero
de DLL. [Esta opción es específica para el puerto de destino i386 PE
del enlazador]

--habilitar-extra-pe-debug
Muestra información de depuración adicional relacionada con el procesamiento de símbolos de importación automática.
[Esta opción es específica del puerto de destino i386 PE del
enlazador]

- alineación de sección
Establece la alineación de la sección. Las secciones en la memoria siempre comenzarán
en direcciones que son múltiplos de este número. Predeterminado a
0x1000. [Esta opción es específica para el puerto de destino i386 PE de
el enlazador]

--apilar reserva
--apilar reserva,hacer
Especifique el número de bytes de memoria para reservar (y opcionalmente
commit) para ser utilizado como pila para este programa. El valor predeterminado es 2 MB.
reservado, 4K comprometido. [Esta opción es específica del i386 PE
puerto de destino del enlazador]

--subsistema que
--subsistema que:gran
--subsistema que:gran .menor de edad
Especifica el subsistema bajo el cual se ejecutará su programa. los
valores legales para que son "nativos", "windows", "consola", "posix",
y "xbox". Opcionalmente, también puede configurar la versión del subsistema.
También se aceptan valores numéricos para que. [Esta opción es
específico del puerto de destino i386 PE del enlazador]

Las siguientes opciones establecen indicadores en el campo "DllCharacteristics"
del encabezado del archivo PE: [Estas opciones son específicas para
puertos del enlazador]

- alta-entropía-va
La imagen es compatible con la aleatorización del diseño del espacio de direcciones de 64 bits
(ASLR).

--base dinámica
La dirección base de la imagen se puede reubicar utilizando el diseño del espacio de direcciones.
aleatorización (ASLR). Esta característica se introdujo con MS Windows
Vista para objetivos i386 PE.

--forceinteg
Se hacen cumplir las comprobaciones de integridad del código.

--nxcompat
La imagen es compatible con la Prevención de ejecución de datos. Esta
La función se introdujo con MS Windows XP SP2 para destinos i386 PE.

--no aislamiento
Aunque la imagen comprende el aislamiento, no aísle la imagen.

--no-seh
La imagen no usa SEH. No se puede llamar a ningún controlador SE desde este
imagen.

--no-vincular
No encuaderne esta imagen.

--wdmdriver
El controlador utiliza el modelo de controlador de MS Windows.

--saware
La imagen es compatible con Terminal Server.

--insertar marca de tiempo
--sin-insertar-marca de tiempo
Inserte una marca de tiempo real en la imagen. Este es el predeterminado
comportamiento, ya que coincide con el código heredado y significa que la imagen
funcionará con otras herramientas patentadas. El problema con esto
predeterminado es que resultará en imágenes ligeramente diferentes
producido cada vez que se enlazan las mismas fuentes. La opción
--sin-insertar-marca de tiempo se puede utilizar para insertar un valor cero para el
marca de tiempo, esto asegura que los binarios producidos a partir de idénticos
las fuentes se compararán de forma idéntica.

El destino C6X uClinux utiliza un formato binario llamado DSBT para admitir
bibliotecas compartidas. Cada biblioteca compartida del sistema debe tener un
índice único; todos los ejecutables usan un índice de 0.

--dsbt-tamaño tamaño
Esta opción establece el número de entradas en el DSBT del actual
biblioteca ejecutable o compartida para tamaño. El valor predeterminado es crear un
tabla con 64 entradas.

--dsbt-índice índice
Esta opción establece el índice DSBT del ejecutable actual o compartido
biblioteca a índice. El valor predeterminado es 0, que es apropiado para
generando ejecutables. Si se genera una biblioteca compartida con un
Índice DSBT de 0, los relocs "R_C6000_DSBT_INDEX" se copian en
el archivo de salida.

El --no-fusionar-entradas-exidx interruptor deshabilita la fusión de
entradas exidx adyacentes en la información de desenrollado del marco.

Los enlazadores 68HC11 y 68HC12 admiten opciones específicas para controlar el
Mapeo de conmutación de banco de memoria y generación de código de trampolín.

--no trampolín
Esta opción desactiva la generación de trampolín. Por defecto un
El trampolín se genera para cada función lejana que se llama usando
una instrucción "jsr" (esto sucede cuando un puntero a una función lejana
se toma).

--ventana bancaria nombre
Esta opción le indica al enlazador el nombre de la región de memoria
existentes MEMORIA especificación que describe la ventana del banco de memoria.
La definición de dicha región es luego utilizada por el enlazador para calcular
paginación y direcciones dentro de la ventana de memoria.

Se admiten las siguientes opciones para controlar el manejo de GOT
generación al vincular para objetivos de 68K.

--got =tipo
Esta opción le dice al enlazador qué esquema de generación GOT usar.
tipo debería ser uno de soltero, negativas, multigote or dirigidos. For
más información, consulte la entrada Info para ld.

Se admiten las siguientes opciones para controlar la instrucción microMIPS
generación al vincular para objetivos MIPS.

--insn32
--no-insn32
Estas opciones controlan la elección de instrucciones microMIPS utilizadas en
código generado por el enlazador, como el de PLT o lazy
topes de encuadernación, o en relajación. Si --insn32 se utiliza, entonces el
El enlazador solo utiliza codificaciones de instrucciones de 32 bits. Por defecto o si
--no-insn32 se utiliza, se utilizan todas las codificaciones de instrucciones, incluidas
Los de 16 bits cuando sea posible.

MEDIO AMBIENTE


Puede cambiar el comportamiento de ld con las variables de entorno
"GNUTARGET", "LDEMULATION" y "COLLECT_NO_DEMANGLE".

"GNUTARGET" determina el formato del objeto del archivo de entrada si no utiliza -b
(o su sinónimo --formato). Su valor debe ser uno de los nombres BFD.
para un formato de entrada. Si no hay "GNUTARGET" en el entorno, ld
utiliza el formato natural del objetivo. Si "GNUTARGET" se establece en
"predeterminado", entonces BFD intenta descubrir el formato de entrada examinando
archivos de entrada binaria; este método a menudo tiene éxito, pero hay posibilidades
ambigüedades, ya que no existe un método para asegurar que el número mágico
utilizado para especificar formatos de archivo objeto es único. sin embargo, el
procedimiento de configuración para BFD en cada sistema coloca el convencional
formato para ese sistema primero en la lista de búsqueda, por lo que las ambigüedades son
resuelto a favor de la convención.

"LDEMULATION" determina la emulación predeterminada si no utiliza la -m
opción. La emulación puede afectar varios aspectos del comportamiento del enlazador,
en particular, el script del enlazador predeterminado. Puede enumerar los disponibles
emulaciones con el --verboso or -V opciones. Si el -m la opción no es
utilizado, y la variable de entorno "LDEMULATION" no está definida, el
La emulación predeterminada depende de cómo se configuró el vinculador.

Normalmente, el enlazador por defecto exigirá símbolos. Sin embargo, si
"COLLECT_NO_DEMANGLE" está configurado en el entorno, luego será predeterminado
a no exigir símbolos. Esta variable de entorno se utiliza en un
de manera similar por el programa de envoltura del enlazador "gcc". El valor predeterminado puede
ser anulado por el --desmenuzar y --no-exigir .

Use i686-linux-gnu-ld en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    MSYS2
    MSYS2
    MSYS2 es una colección de herramientas y
    bibliotecas que le proporcionan una
    entorno fácil de usar para la construcción,
    instalar y ejecutar Windows nativo
    software. Con ...
    Descargar MSYS2
  • 2
    libjpeg-turbo
    libjpeg-turbo
    libjpeg-turbo es un códec de imagen JPEG
    que usa instrucciones SIMD (MMX, SSE2,
    NEON, AltiVec) para acelerar la línea de base
    Compresión y descompresión JPEG activadas
    x86, x8 ...
    Descargar libjpeg-turbo
  • 3
    Xtreme Download Manager
    Xtreme Download Manager
    El proyecto tiene ahora un nuevo hogar:
    https://xtremedownloadmanager.com/ For
    desarrolladores:
    https://github.com/subhra74/xdm Xtreme
    Download Manager es una poderosa herramienta pa...
    Descarga el administrador de descargas Xtreme
  • 4
    TTGO VGA32 Lite
    TTGO VGA32 Lite
    Características: 4:3 y 16:9 de baja resolución
    Salida VGATeclado y mouse PS/2
    interfaz de usuario basada en inputText (TUI)
    con administrador de diálogo Unicode parcial
    soporteDispositivo esclavo...
    Descargar TTGO VGA32 Lite
  • 5
    Cargador de arranque Clover EFI
    Cargador de arranque Clover EFI
    El proyecto se ha trasladado a
    https://github.com/CloverHackyColor/CloverBootloader..
    Características: Arranque macOS, Windows y Linux
    en UEFI o en modo heredado en Mac o PC con
    UE...
    Descarga el gestor de arranque Clover EFI
  • 6
    rpmsunidos
    rpmsunidos
    ¡Únase a nosotros en Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    Habilite el repositorio URPMS en su
    sistema -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    Descargar unitedrpms
  • Más "

Comandos de Linux

Ad