AnglaisFrançaisEspagnol

Ad


Icône de favori OnWorks

h8300-hms-ld - En ligne dans le Cloud

Exécutez h8300-hms-ld dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande h8300-hms-ld qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


ld - Utilisation de LD, l'éditeur de liens GNU

SYNOPSIS


ld [Options] fichier obj

DESCRIPTION


ld combine un certain nombre de fichiers d'objets et d'archives, déplace leurs données et associe le symbole
les références. Habituellement, la dernière étape de la compilation d'un programme consiste à exécuter ld.

ld accepte les fichiers Linker Command Language écrits dans un sur-ensemble de Link Editor d'AT&T
Syntaxe du langage de commande, pour fournir un contrôle explicite et total sur le processus de liaison.

Cette page de manuel ne décrit pas le langage de commande ; voir le ld entrée dans "info", ou le
manual ld : l'éditeur de liens GNU, pour plus de détails sur le langage de commande et sur d'autres aspects
de l'éditeur de liens GNU.

Cette version de ld utilise les bibliothèques BFD à usage général pour opérer sur des fichiers objets. Cette
permet ld pour lire, combiner et écrire des fichiers objets dans de nombreux formats différents --- pour
exemple, COFF ou "a.out". Différents formats peuvent être liés entre eux pour produire n'importe quel
type de fichier objet disponible.

Mis à part sa flexibilité, l'éditeur de liens GNU est plus utile que d'autres éditeurs de liens pour fournir
informations diagnostiques. De nombreux linkers abandonnent l'exécution immédiatement après avoir rencontré un
Erreur; dès que possible, ld continue de s'exécuter, vous permettant d'identifier d'autres erreurs
(ou, dans certains cas, pour obtenir un fichier de sortie malgré l'erreur).

L'éditeur de liens GNU ld vise à couvrir un large éventail de situations et à être aussi compatible
que possible avec d'autres linkers. En conséquence, vous avez de nombreux choix pour contrôler son
comportement.

OPTIONS


L'éditeur de liens prend en charge une pléthore d'options de ligne de commande, mais dans la pratique, peu d'entre elles
sont utilisés dans un contexte particulier. Par exemple, une utilisation fréquente de ld est de lier
fichiers objet Unix standard sur un système Unix standard pris en charge. Sur un tel système, pour
lier un fichier "hello.o":

Oui /lib/crt0.o bonjour.o -lc

Cela raconte ld pour produire un fichier appelé sortie à la suite de la liaison du fichier
"/lib/crt0.o" avec "hello.o" et la librairie "libc.a", qui viendra du standard
rechercher des répertoires. (Voir la discussion sur le -l option ci-dessous.)

Certaines des options de ligne de commande pour ld peut être spécifié à n'importe quel point de la ligne de commande.
Cependant, les options qui font référence à des fichiers, telles que -l or -T, provoque la lecture du fichier au
point d'apparition de l'option dans la ligne de commande, par rapport aux fichiers objets et
d'autres options de fichier. La répétition d'options non-fichier avec un argument différent aura soit
aucun autre effet, ou remplacer les occurrences précédentes (celles plus à gauche sur la commande
ligne) de cette option. Les options qui peuvent être spécifiées de manière significative plus d'une fois sont
indiqué dans les descriptions ci-dessous.

Les arguments non optionnels sont des fichiers objets ou des archives qui doivent être liés ensemble. Ils
peut suivre, précéder ou être mélangé avec des options de ligne de commande, sauf qu'un fichier objet
L'argument ne peut pas être placé entre une option et son argument.

Généralement, l'éditeur de liens est invoqué avec au moins un fichier objet, mais vous pouvez spécifier d'autres
formes de fichiers d'entrée binaires utilisant -l, -R, et le langage de commande de script. Si aucune binaire
les fichiers d'entrée sont spécifiés, l'éditeur de liens ne produit aucune sortie et émet le
message Non contribution fichiers.

Si l'éditeur de liens ne peut pas reconnaître le format d'un fichier objet, il supposera qu'il s'agit d'un
script de l'éditeur de liens. Un script spécifié de cette manière augmente le script de l'éditeur de liens principal utilisé pour
le lien (soit le script de l'éditeur de liens par défaut, soit celui spécifié en utilisant -T). Ce
La fonction permet à l'éditeur de liens d'établir un lien avec un fichier qui semble être un objet ou un
archive, mais définit simplement certaines valeurs de symboles, ou utilise "INPUT" ou "GROUP" pour
charger d'autres objets. Notez que spécifier un script de cette manière ne fait qu'augmenter le
script de l'éditeur de liens ; Utilisez le -T option pour remplacer entièrement le script de l'éditeur de liens par défaut.

Pour les options dont le nom est composé d'une seule lettre, les arguments d'option doivent soit suivre le
lettre d'option sans espace, ou être donnée comme arguments séparés
immédiatement après l'option qui les requiert.

Pour les options dont le nom est composé de plusieurs lettres, un tiret ou deux peuvent précéder le
nom de l'option ; par exemple, -trace-symbole ainsi que --trace-symbole sont équivalents. Remarque --- là
est une exception à cette règle. Plusieurs options de lettres commençant par un « o » minuscule
ne peut être précédé que de deux tirets. Ceci afin de réduire la confusion avec le -o option. Donc
par exemple -magique définit le nom du fichier de sortie sur la magie Les --magique définit le NMAGIC
drapeau sur la sortie.

Les arguments des options à plusieurs lettres doivent être séparés du nom de l'option par un
signe égal, ou être donné en tant qu'arguments séparés immédiatement après l'option qui
les exige. Par exemple, --trace-symbole foo ainsi que --trace-symbol=foo sont équivalents.
Les abréviations uniques des noms des options à plusieurs lettres sont acceptées.

Remarque --- si l'éditeur de liens est invoqué indirectement, via un pilote de compilateur (par exemple gcc) puis
toutes les options de ligne de commande de l'éditeur de liens doivent être préfixées par -Wl, (ou tout ce qui convient
pour le pilote de compilateur particulier) comme ceci :

gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup

Ceci est important, car sinon le programme du pilote du compilateur peut supprimer silencieusement le
options de l'éditeur de liens, ce qui entraîne un mauvais lien.

Voici un tableau des commutateurs de ligne de commande génériques acceptés par l'éditeur de liens GNU :

-amot-clé
Cette option est prise en charge pour la compatibilité HP/UX. Les mot-clé l'argument doit être l'un des
Les cordes archives, communou défaut. -unearchive est fonctionnellement équivalent à
-Bstatique, et les deux autres mots-clés sont fonctionnellement équivalents à -Bdynamique. Ce
L'option peut être utilisée autant de fois que vous le souhaitez.

-Aarchitecture
--architecture=architecture
Dans la version actuelle de ld, cette option n'est utile que pour la famille Intel 960 de
architecturales. Dans ce ld configuration, le architecture l'argument identifie le
architecture particulière à la famille 960, permettant certaines sauvegardes et modifiant la
chemin de recherche de la bibliothèque d'archives.

Les prochaines versions de ld peut prendre en charge des fonctionnalités similaires pour d'autres architectures
familles.

-b format d'entrée
--format=format d'entrée
ld peut être configuré pour prendre en charge plus d'un type de fichier objet. Si votre ld is
configuré de cette façon, vous pouvez utiliser le -b option pour spécifier le format binaire pour l'entrée
fichiers objet qui suivent cette option sur la ligne de commande. Même quand ld est configuré
pour prendre en charge d'autres formats d'objet, vous n'avez généralement pas besoin de le spécifier, car ld
doit être configuré pour attendre comme format d'entrée par défaut le format le plus courant sur chaque
machine. format d'entrée est une chaîne de texte, le nom d'un format particulier pris en charge par
les bibliothèques BFD. (Vous pouvez lister les formats binaires disponibles avec objdump -i.)

Vous pouvez utiliser cette option si vous liez des fichiers avec un binaire inhabituel
format. Vous pouvez aussi utiliser -b pour changer de format explicitement (lors de la liaison de fichiers objets
de formats différents), en incluant -b format d'entrée avant chaque groupe de fichiers objets
dans un format particulier.

Le format par défaut est tiré de la variable d'environnement "GNUTARGET".

Vous pouvez également définir le format d'entrée à partir d'un script, à l'aide de la commande « TARGET » ;

-c Fichier de commandes IRM
--mri-script=Fichier de commandes IRM
Pour la compatibilité avec les linkers produits par IRM, ld accepte les fichiers de script écrits dans un
langage de commande alternatif et restreint, décrit dans les fichiers de script compatibles IRM
section de la documentation GNU ld. Introduire les fichiers de script IRM avec l'option -c; utilisation
le -T option pour exécuter des scripts d'éditeur de liens écrits dans l'usage général ld script
Langue. Si IRM-cmdfile n'existe pas, ld le recherche dans les répertoires spécifiés
par n'importe quel -L options.

-d
-cc
-dp Ces trois options sont équivalentes ; plusieurs formulaires sont pris en charge pour la compatibilité
avec d'autres linkers. Ils attribuent un espace aux symboles communs même si une sortie déplaçable
fichier est spécifié (avec -r). La commande de script "FORCE_COMMON_ALLOCATION" a le
même effet.

-e entrée
--entrée=entrée
Utilisez entrée comme symbole explicite pour commencer l'exécution de votre programme, plutôt que
le point d'entrée par défaut. S'il n'y a pas de symbole nommé entrée, l'éditeur de liens essaiera de
analyser entrée comme numéro, et utilisez-le comme adresse d'entrée (le numéro sera
interprété en base 10 ; vous pouvez utiliser un leader 0x pour la base 16, ou un leader 0 pour socle
8).

--exclude-libs lib,lib...
Spécifie une liste de bibliothèques d'archives à partir desquelles les symboles ne doivent pas être automatiquement
exporté. Les noms de bibliothèque peuvent être délimités par des virgules ou des deux-points. En précisant
"--exclude-libs ALL" exclut les symboles de toutes les bibliothèques d'archives de l'exportation automatique.
Cette option n'est disponible que pour le port ciblé i386 PE de l'éditeur de liens et pour ELF
ports ciblés. Pour i386 PE, les symboles explicitement répertoriés dans un fichier .def sont toujours
exporté, quelle que soit cette option. Pour les ports ciblés ELF, les symboles affectés par ce
L'option sera traitée comme masquée.

-E
--export-dynamique
Lors de la création d'un exécutable lié dynamiquement, ajoutez tous les symboles au symbole dynamique
table. La table des symboles dynamiques est l'ensemble des symboles visibles depuis
objets au moment de l'exécution.

Si vous n'utilisez pas cette option, la table de symboles dynamique ne contiendra normalement que
ces symboles qui sont référencés par un objet dynamique mentionné dans le lien.

Si vous utilisez "dlopen" pour charger un objet dynamique qui doit se référer aux symboles
défini par le programme, plutôt qu'un autre objet dynamique, alors vous aurez probablement
besoin d'utiliser cette option lors de la liaison du programme lui-même.

Vous pouvez également utiliser le script de version pour contrôler quels symboles doivent être ajoutés au
table de symboles dynamique si le format de sortie le prend en charge. Voir la description de
--version-script dans @ref{VERSION}.

-EB Liez des objets big-endian. Cela affecte le format de sortie par défaut.

-LA Liez des objets little-endian. Cela affecte le format de sortie par défaut.

-f
--auxiliaire prénom
Lors de la création d'un objet partagé ELF, définissez le champ interne DT_AUXILIARY sur le
nom spécifié. Cela indique à l'éditeur de liens dynamique que la table des symboles du partage
l'objet doit être utilisé comme filtre auxiliaire sur la table des symboles de l'objet partagé
prénom.

Si vous associez ultérieurement un programme à cet objet filtre, alors, lorsque vous exécutez le
programme, l'éditeur de liens dynamique verra le champ DT_AUXILIAIRE. Si l'éditeur de liens dynamique
résout tous les symboles de l'objet filtre, il vérifiera d'abord s'il existe un
définition dans l'objet partagé prénom. S'il y en a un, il sera utilisé à la place du
définition dans l'objet filtre. L'objet partagé prénom n'a pas besoin d'exister. Ainsi, le
objet partagé prénom peut être utilisé pour fournir une mise en œuvre alternative de certains
fonctions, peut-être pour le débogage ou pour des performances spécifiques à la machine.

Cette option peut être spécifiée plusieurs fois. Les entrées DT_AUXILIARY seront créées
dans l'ordre dans lequel ils apparaissent sur la ligne de commande.

-F prénom
--filtre prénom
Lors de la création d'un objet partagé ELF, définissez le champ interne DT_FILTER sur le
Nom. Cela indique à l'éditeur de liens dynamique que la table des symboles de l'objet partagé qui
est en cours de création doit être utilisé comme filtre sur la table des symboles de l'objet partagé
prénom.

Si vous associez ultérieurement un programme à cet objet filtre, alors, lorsque vous exécutez le
programme, l'éditeur de liens dynamique verra le champ DT_FILTER. L'éditeur de liens dynamique
résoudre les symboles selon la table des symboles de l'objet filtre comme d'habitude, mais il
sera en fait lié aux définitions trouvées dans l'objet partagé prénom. Ainsi, le
l'objet filtre peut être utilisé pour sélectionner un sous-ensemble des symboles fournis par l'objet
prénom.

Certains linkers plus anciens utilisaient le -F option tout au long d'une chaîne d'outils de compilation pour
spécifiant le format de fichier objet pour les fichiers objet d'entrée et de sortie. L'éditeur de liens GNU
utilise d'autres mécanismes à cette fin : le -b, --format, --oformat options, le
la commande "TARGET" dans les scripts de l'éditeur de liens et la variable d'environnement "GNUTARGET". Le GNU
l'éditeur de liens ignorera le -F option lorsque vous ne créez pas d'objet partagé ELF.

-fini prénom
Lors de la création d'un exécutable ELF ou d'un objet partagé, appelez NAME lorsque l'exécutable ou
l'objet partagé est déchargé, en mettant DT_FINI à l'adresse de la fonction. Par
par défaut, l'éditeur de liens utilise "_fini" comme fonction à appeler.

-g Ignoré. Prévu pour la compatibilité avec d'autres outils.

-GPlus-value
--gpsize=Plus-value
Définissez la taille maximale des objets à optimiser à l'aide du registre GP pour taille. Ce
n'a de sens que pour les formats de fichier objet tels que MIPS ECOFF qui prend en charge la mise
grands et petits objets en différentes sections. Ceci est ignoré pour les autres objets
formats de fichiers.

-hprénom
-sonnom=prénom
Lors de la création d'un objet partagé ELF, définissez le champ interne DT_SONAME sur le
Nom. Lorsqu'un exécutable est lié à un objet partagé qui possède un champ DT_SONAME,
puis lorsque l'exécutable est exécuté, l'éditeur de liens dynamique tentera de charger le fichier partagé
objet spécifié par le champ DT_SONAME plutôt que d'utiliser le nom de fichier donné à
l'éditeur de liens.

-i Effectuer un lien incrémentiel (identique à l'option -r).

-initialisation prénom
Lors de la création d'un exécutable ELF ou d'un objet partagé, appelez NAME lorsque l'exécutable ou
l'objet partagé est chargé, en définissant DT_INIT sur l'adresse de la fonction. Par
par défaut, l'éditeur de liens utilise "_init" comme fonction à appeler.

-larchives
--bibliothèque=archives
Ajouter un fichier d'archive archives à la liste des fichiers à lier. Cette option peut être utilisée n'importe
nombre de fois. ld recherchera dans sa liste de chemins les occurrences de "libarchive.a" en
chaque archives spécifié.

Sur les systèmes qui prennent en charge les bibliothèques partagées, ld peut également rechercher des bibliothèques avec
extensions autres que ".a". Plus précisément, sur les systèmes ELF et SunOS, ld va chercher un
répertoire d'une bibliothèque avec une extension ".so" avant d'en rechercher une avec un
extension de ".a". Par convention, une extension ".so" indique une bibliothèque partagée.

L'éditeur de liens ne recherchera une archive qu'une seule fois, à l'emplacement où il est spécifié sur
la ligne de commande. Si l'archive définit un symbole qui n'était pas défini dans un objet
qui est apparu avant l'archive sur la ligne de commande, l'éditeur de liens inclura le
fichier(s) approprié(s) de l'archive. Cependant, un symbole non défini dans un objet
apparaissant plus tard sur la ligne de commande n'incitera pas l'éditeur de liens à rechercher l'archive
nouveau.

Voir le -( option pour forcer l'éditeur de liens à rechercher plusieurs fois les archives.

Vous pouvez lister la même archive plusieurs fois sur la ligne de commande.

Ce type de recherche d'archives est standard pour les éditeurs de liens Unix. Cependant, si vous êtes
en utilisant ld sur AIX, notez qu'il est différent du comportement de l'éditeur de liens AIX.

-Lrépertoire de recherche
--chemin-bibliothèque=répertoire de recherche
Ajouter un chemin répertoire de recherche à la liste des chemins qui ld recherchera les bibliothèques d'archives et
ld scripts de contrôle. Vous pouvez utiliser cette option autant de fois que vous le souhaitez. Les répertoires sont
recherchés dans l'ordre dans lequel ils sont spécifiés sur la ligne de commande. Annuaires
spécifiés sur la ligne de commande sont recherchés avant les répertoires par défaut. Tous -L
les options s'appliquent à tous -l options, quel que soit l'ordre dans lequel les options apparaissent.

If répertoire de recherche commence par "=", alors le "=" sera remplacé par le racine système préfixeun
chemin spécifié lorsque l'éditeur de liens est configuré.

L'ensemble par défaut des chemins recherchés (sans être spécifié avec -L) dépend de quel
mode d'émulation ld utilise, et dans certains cas également sur la façon dont il a été configuré.

Les chemins peuvent également être spécifiés dans un script de lien avec la commande "SEARCH_DIR".
Les répertoires spécifiés de cette manière sont recherchés au point où le script de l'éditeur de liens
apparaît dans la ligne de commande.

-mémulation
Émuler le émulation éditeur de liens. Vous pouvez lister les émulations disponibles avec le
--verbeux or -V options.

Si la -m l'option n'est pas utilisée, l'émulation est extraite du "LDEMULATION"
variable d'environnement, si elle est définie.

Sinon, l'émulation par défaut dépend de la façon dont l'éditeur de liens a été configuré.

-M
--print-carte
Imprimez une carte de liens vers la sortie standard. Une carte des liens fournit des informations sur les
lien, y compris les éléments suivants :

* Où les fichiers objets et les symboles sont mappés dans la mémoire.

* Comment les symboles communs sont alloués.

* Tous les membres de l'archive inclus dans le lien, avec une mention du symbole qui
causé l'arrivée du membre de l'archive.

-n
--nmagique
Désactivez l'alignement des pages des sections et marquez la sortie comme "NMAGIC" si possible.

-N
--magique
Définissez les sections de texte et de données pour qu'elles soient lisibles et inscriptibles. Aussi, ne pas aligner la page
le segment de données et désactivez la liaison avec les bibliothèques partagées. Si le format de sortie
prend en charge les nombres magiques de style Unix, marquez la sortie comme "OMAGIC". Remarque : bien qu'un
la section de texte inscriptible est autorisée pour les cibles PE-COFF, elle n'est pas conforme à la
spécification de format publiée par Microsoft.

--no-omagique
Cette option annule la plupart des effets de la -N option. Il définit la section de texte sur
être en lecture seule et force le segment de données à être aligné sur la page. Remarque - cette option ne
n'active pas la liaison avec les bibliothèques partagées. Utilisation -Bdynamique pour ça.

-o sortie
--sortie=sortie
Utilisez sortie comme nom du programme produit par ld; si cette option n'est pas
spécifié, le nom a.out est utilisé par défaut. La commande de script "SORTIE" peut également
spécifiez le nom du fichier de sortie.

-O niveau
If niveau est une valeur numérique supérieure à zéro ld optimise le rendement. Cela pourrait
prendre beaucoup plus de temps et ne devrait donc probablement être activé que pour la dernière
binaire.

-q
--emit-relocalisations
Laissez les sections et le contenu de relocalisation dans des exécutables entièrement liés. Lien de publication
les outils d'analyse et d'optimisation peuvent avoir besoin de ces informations pour effectuer correctement
modifications des exécutables. Cela se traduit par des exécutables plus volumineux.

Cette option n'est actuellement prise en charge que sur les plates-formes ELF.

-r
--déplaçable
Générer une sortie déplaçable --- c'est-à-dire générer un fichier de sortie qui peut à son tour servir de
entrée à ld. C'est ce qu'on appelle souvent partiel lien. Comme effet secondaire, dans les environnements
qui prennent en charge les nombres magiques Unix standard, cette option définit également le fichier de sortie
nombre magique à "OMAGIC". Si cette option n'est pas spécifiée, un fichier absolu est
produit. Lors de la liaison de programmes C++, cette option sera ne sauraient résoudre les références à
constructeurs; pour ce faire, utilisez -Ur.

Lorsqu'un fichier d'entrée n'a pas le même format que le fichier de sortie, la liaison partielle
n'est pris en charge que si ce fichier d'entrée ne contient aucun déplacement. Différent
les formats de sortie peuvent avoir d'autres restrictions ; par exemple certains formats basés sur "a.out"
ne prennent pas du tout en charge la liaison partielle avec des fichiers d'entrée dans d'autres formats.

Cette option fait la même chose que -i.

-R nom de fichier
--just-symboles=nom de fichier
Lire les noms de symboles et leurs adresses sur nom de fichier, mais ne le déplacez pas et n'incluez pas
dans la sortie. Cela permet à votre fichier de sortie de se référer symboliquement à l'absolu
emplacements de mémoire définis dans d'autres programmes. Vous pouvez utiliser cette option plus de
une fois que.

Pour la compatibilité avec d'autres linkers ELF, si le -R l'option est suivie d'un répertoire
nom, plutôt qu'un nom de fichier, il est traité comme le -rchemin option.

-s
--strip-tout
Omettez toutes les informations de symbole du fichier de sortie.

-S
--strip-débogage
Omettez les informations sur les symboles du débogueur (mais pas tous les symboles) du fichier de sortie.

-t
--tracer
Imprimer les noms des fichiers d'entrée comme ld les traite.

-T Fichier de script
--script=Fichier de script
Utilisez Fichier de script comme script de l'éditeur de liens. Ce script remplace ldle script de l'éditeur de liens par défaut
(plutôt que d'y ajouter), donc fichier de commandes doit spécifier tout ce qui est nécessaire pour
décrire le fichier de sortie. Si Fichier de script n'existe pas dans le répertoire courant,
"ld" le recherche dans les répertoires spécifiés par tout précédent -L option. Plusieurs
-T les options s'accumulent.

-u symbole
--undéfini=symbole
Force symbole à saisir dans le fichier de sortie en tant que symbole indéfini. Faire cela peut,
par exemple, déclencher la liaison de modules supplémentaires à partir de bibliothèques standard. -u peut être
répété avec différents arguments d'option pour entrer des symboles non définis supplémentaires. Cette
L'option est équivalente à la commande de script de l'éditeur de liens "EXTERN".

-Ur Pour tout autre chose que les programmes C++, cette option est équivalente à -r: il génère
sortie déplaçable --- c'est-à-dire un fichier de sortie qui peut à son tour servir d'entrée à ld. Quand
lier des programmes C++, -Ur résoudre les références aux constructeurs, contrairement -r. Cela fait
ne fonctionne pas à utiliser -Ur sur des fichiers eux-mêmes liés -Ur; une fois la
la table des constructeurs a été créée, elle ne peut pas être ajoutée. Utilisation -Ur seulement pour le dernier
lien partiel, et -r pour les autres.

--unique[=SECTION]
Crée une section de sortie distincte pour chaque correspondance de section d'entrée SECTION, ou si le
caractère générique facultatif SECTION l'argument est manquant, pour chaque section d'entrée orpheline. Un
La section orpheline n'est pas spécifiquement mentionnée dans un script d'éditeur de liens. Vous pouvez utiliser ceci
option plusieurs fois sur la ligne de commande ; Il empêche la fusion normale des entrées
sections portant le même nom, remplaçant les affectations de section de sortie dans un script de l'éditeur de liens.

-v
--version
-V Afficher le numéro de version de ldL’ -V L'option répertorie également les émulations prises en charge.

-x
--jeter tout
Supprimez tous les symboles locaux.

-X
--discard-locaux
Supprimez tous les symboles locaux temporaires. Pour la plupart des cibles, il s'agit de tous les symboles locaux dont
les noms commencent par L.

-y symbole
--trace-symbole=symbole
Imprimer le nom de chaque fichier lié dans lequel symbole apparaît. Cette option peut être donnée
n'importe quel nombre de fois. Sur de nombreux systèmes, il est nécessaire d'ajouter un trait de soulignement.

Cette option est utile lorsque vous avez un symbole non défini dans votre lien mais que vous ne le savez pas
d'où vient la référence.

-Y chemin
Ajouter chemin au chemin de recherche de bibliothèque par défaut. Cette option existe pour Solaris
compatibilité.

-z mot-clé
Les mots-clés reconnus sont :

combleloc
Combine plusieurs sections de relocalisation et les trie pour effectuer une recherche dynamique de symboles
mise en cache possible.

def
Interdit les symboles non définis dans les fichiers objets. Symboles non définis en partage
les bibliothèques sont toujours autorisées.

initialiser en premier
Cette option n'a de sens que lors de la construction d'un objet partagé. Il marque l'objet
afin que son initialisation d'exécution se produise avant l'initialisation d'exécution de
tout autre objet introduit dans le processus en même temps. De même le
la finalisation à l'exécution de l'objet se produira après la finalisation à l'exécution de
tout autre objet.

interposer
Marque l'objet que sa table de symboles interpose avant tous les symboles sauf le
exécutable principal.

chargementfltr
Marque l'objet que ses filtres doivent être traités immédiatement au moment de l'exécution.

muldefs
Permet plusieurs définitions.

nocombreloc
Désactive la combinaison de plusieurs sections de relocalisation.

nocopyreloc
Désactive la production de relocs de copie.

nœudfaultlib
Marque l'objet que la recherche des dépendances de cet objet ignorera tout
chemins de recherche de bibliothèque par défaut.

nœudlet
Marque que l'objet ne doit pas être déchargé lors de l'exécution.

nodlopen
Marque l'objet non disponible pour "dlopen".

nodump
Marque que l'objet ne peut pas être vidé par "dldump".

maintenant Lors de la génération d'un exécutable ou d'une bibliothèque partagée, marquez-le pour indiquer à la dynamique
linker pour résoudre tous les symboles lorsque le programme est démarré, ou lorsque le partage
la bibliothèque est liée à l'utilisation de dlopen, au lieu de différer la résolution des appels de fonction
jusqu'au moment où la fonction est appelée pour la première fois.

origine
Marque que l'objet peut contenir $ORIGIN.

Les autres mots-clés sont ignorés pour la compatibilité Solaris.

-( les archives -)
--start-group les archives --end-groupe
La les archives devrait être une liste de fichiers d'archives. Ils peuvent être soit un fichier explicite
noms, ou -l options.

Les archives spécifiées sont recherchées à plusieurs reprises jusqu'à ce qu'aucune nouvelle référence non définie ne soit
créé. Normalement, une archive n'est recherchée qu'une seule fois dans l'ordre dans lequel elle est spécifiée
sur la ligne de commande. Si un symbole dans cette archive est nécessaire pour résoudre un problème non défini
symbole référencé par un objet dans une archive qui apparaît plus tard sur la ligne de commande,
l'éditeur de liens ne serait pas en mesure de résoudre cette référence. En regroupant les archives,
ils sont tous recherchés à plusieurs reprises jusqu'à ce que toutes les références possibles soient résolues.

L'utilisation de cette option a un coût de performance important. Il est préférable de ne l'utiliser que lorsque
il existe des références circulaires inévitables entre deux ou plusieurs archives.

--accepter-inconnu-entrée-arch
--no-accept-inconnu-input-arch
Indique à l'éditeur de liens d'accepter les fichiers d'entrée dont l'architecture ne peut pas être reconnue. Les
l'hypothèse est que l'utilisateur sait ce qu'il fait et veut délibérément lier
dans ces fichiers d'entrée inconnus. C'était le comportement par défaut de l'éditeur de liens, avant
version 2.14. Le comportement par défaut à partir de la version 2.14 est de rejeter une telle entrée
fichiers, et ainsi le --accepter-inconnu-entrée-arch une option a été ajoutée pour restaurer l'ancien
comportement.

--comme requis
--no-as-besoin
Cette option affecte les balises ELF DT_NEEDED pour les bibliothèques dynamiques mentionnées sur la commande
ligne après le --comme requis option. Normalement, l'éditeur de liens ajoutera une balise DT_NEEDED pour
chaque bibliothèque dynamique mentionnée sur la ligne de commande, que la bibliothèque
est réellement nécessaire. --comme requis provoque l'émission des balises DT_NEEDED uniquement pour
bibliothèques qui satisfont à une référence de symbole à partir d'objets réguliers qui n'est pas définie
au moment où la bibliothèque était liée. --no-as-besoin restaure la valeur par défaut
comportement.

--ajouter-nécessaire
--aucun-ajout-nécessaire
Cette option affecte le traitement des bibliothèques dynamiques des balises ELF DT_NEEDED dans
bibliothèques dynamiques mentionnées sur la ligne de commande après le --aucun-ajout-nécessaire option.
Normalement, l'éditeur de liens ajoutera une balise DT_NEEDED pour chaque bibliothèque dynamique de DT_NEEDED
Mots clés. --aucun-ajout-nécessaire les balises DT_NEEDED ne seront jamais émises pour ces bibliothèques
à partir des balises DT_NEEDED. --ajouter-nécessaire restaure le comportement par défaut.

-affirmer mot-clé
Cette option est ignorée pour la compatibilité SunOS.

-Bdynamique
-dy
-appel_partagé
Lien avec les bibliothèques dynamiques. Cela n'a de sens que sur les plateformes pour lesquelles le partage
les bibliothèques sont prises en charge. Cette option est normalement la valeur par défaut sur ces plates-formes. Les
différentes variantes de cette option sont pour la compatibilité avec divers systèmes. Tu peux
utiliser cette option plusieurs fois sur la ligne de commande : cela affecte la recherche de bibliothèque pour
-l options qui le suivent.

-Bgroupe
Définissez le drapeau "DF_1_GROUP" dans l'entrée "DT_FLAGS_1" de la section dynamique. Cette
oblige l'éditeur de liens d'exécution à gérer les recherches dans cet objet et ses dépendances à être
joué uniquement à l'intérieur du groupe. --unresolved-symbols=report-all est implicite. Cette
L'option n'a de sens que sur les plates-formes ELF qui prennent en charge les bibliothèques partagées.

-Bstatique
-dn
-non_partagé
-statique
Ne pas créer de lien avec des bibliothèques partagées. Cela n'a de sens que sur les plateformes pour lesquelles
les bibliothèques partagées sont prises en charge. Les différentes variantes de cette option sont pour
compatibilité avec divers systèmes. Vous pouvez utiliser cette option plusieurs fois sur le
ligne de commande : cela affecte la recherche de la bibliothèque -l options qui le suivent. Cette
option implique également --unresolved-symbols=report-all.

-Bsymbolique
Lors de la création d'une bibliothèque partagée, liez les références aux symboles globaux à la définition
dans la bibliothèque partagée, le cas échéant. Normalement, il est possible pour un programme lié
par rapport à une bibliothèque partagée pour remplacer la définition dans la bibliothèque partagée. Cette
L'option n'a de sens que sur les plates-formes ELF qui prennent en charge les bibliothèques partagées.

--vérifier-sections
--no-check-sections
Demande à l'éditeur de liens ne sauraient pour vérifier les adresses de section après leur attribution pour voir si
il y a des chevauchements. Normalement, l'éditeur de liens effectuera cette vérification, et s'il trouve
chevauche, il produira des messages d'erreur appropriés. L'éditeur de liens connaît, et
tient compte des sections dans les superpositions. Le comportement par défaut peut être restauré
en utilisant le commutateur de ligne de commande --vérifier-sections.

--cref
Sortez une table de références croisées. Si un fichier de mappage de l'éditeur de liens est généré, la croix
la table de référence est imprimée dans le fichier de carte. Sinon, il est imprimé sur la norme
sortie.

Le format du tableau est volontairement simple, de sorte qu'il puisse être facilement traité par
un script si nécessaire. Les symboles sont imprimés, triés par nom. Pour chaque symbole,
une liste de noms de fichiers est fournie. Si le symbole est défini, le premier fichier répertorié est le
emplacement de la définition. Les fichiers restants contiennent des références au symbole.

--no-define-common
Cette option interdit l'affectation d'adresses à des symboles communs. Le script
la commande "INHIBIT_COMMON_ALLOCATION" a le même effet.

La --no-define-common L'option permet de découpler la décision d'attribuer des adresses à
Symboles communs issus du choix du type de fichier de sortie ; sinon un non déplaçable
le type de sortie force l'affectation d'adresses aux symboles communs. À l'aide de --no-define-common
permet d'attribuer des symboles communs référencés à partir d'une bibliothèque partagée
adresses uniquement dans le programme principal. Cela élimine l'espace en double inutilisé dans le
bibliothèque partagée, et empêche également toute confusion possible sur la résolution de la mauvaise
dupliquer lorsqu'il existe de nombreux modules dynamiques avec des chemins de recherche spécialisés pour
résolution des symboles d'exécution.

--defsym symbole=expression
Créez un symbole global dans le fichier de sortie, contenant l'adresse absolue donnée par
expression. Vous pouvez utiliser cette option autant de fois que nécessaire pour définir plusieurs
symboles dans la ligne de commande. Une forme limitée d'arithmétique est prise en charge pour le
expression dans ce contexte : vous pouvez donner une constante hexadécimale ou le nom d'un
symbole existant, ou utilisez "+" et "-" pour ajouter ou soustraire des constantes hexadécimales ou
symboles. Si vous avez besoin d'expressions plus élaborées, pensez à utiliser la commande de l'éditeur de liens
langue à partir d'un script. Remarque: il ne doit pas y avoir d'espace blanc entre symbole,
signe égal (``=''), et expression.

--demangle[=Catégorie]
--pas de démêlage
Ces options contrôlent s'il faut démêler les noms de symboles dans les messages d'erreur et autres
sortir. Lorsque l'éditeur de liens reçoit l'ordre de démêler, il essaie de présenter les noms de symboles dans un
mode lisible : il supprime les traits de soulignement de début s'ils sont utilisés par le fichier objet
format et convertit les noms de symboles mutilés C++ en noms lisibles par l'utilisateur. Différent
les compilateurs ont des styles de mutilation différents. L'argument de style de démêlage facultatif peut
être utilisé pour choisir un style de démêlage approprié pour votre compilateur. L'éditeur de liens sera
demangle par défaut à moins que la variable d'environnement COLLECT_NO_DEMANGLE est réglé. Ces
Les options peuvent être utilisées pour remplacer la valeur par défaut.

--éditeur de liens dynamique filet
Définissez le nom de l'éditeur de liens dynamique. Ceci n'a de sens que lors de la génération
exécutables ELF liés dynamiquement. L'éditeur de liens dynamique par défaut est normalement correct ;
ne l'utilisez pas à moins que vous ne sachiez ce que vous faites.

--avertissements-fatals
Traitez tous les avertissements comme des erreurs.

--force-exe-suffixe
Assurez-vous qu'un fichier de sortie a un suffixe .exe.

Si un fichier de sortie entièrement lié créé avec succès n'a pas de ".exe" ou ".dll"
suffixe, cette option force l'éditeur de liens à copier le fichier de sortie sur l'un du même nom
avec un suffixe ".exe". Cette option est utile lors de l'utilisation de makefiles Unix non modifiés sur un
Hôte Microsoft Windows, car certaines versions de Windows n'exécuteront pas d'image à moins qu'elle
se termine par un suffixe ".exe".

--no-gc-sections
--gc-sections
Activez le ramasse-miettes des sections d'entrée inutilisées. Il est ignoré sur les cibles qui ne
ne prend pas en charge cette option. Cette option n'est pas compatible avec -r. Le comportement par défaut
(de ne pas effectuer ce ramasse-miettes) peut être restauré en spécifiant
--no-gc-sections sur la ligne de commande.

--Aidez-moi
Imprimez un résumé des options de ligne de commande sur la sortie standard et quittez.

--target-aide
Imprimez un résumé de toutes les options spécifiques à la cible sur la sortie standard et quittez.

-Carte fichier de carte
Imprimer une carte de liens vers le fichier fichier de carte. Voir la description du -M option, ci-dessus.

--pas de conservation de mémoire
ld optimise normalement la vitesse par rapport à l'utilisation de la mémoire en mettant en cache les tables de symboles de
fichiers d'entrée en mémoire. Cette option indique ld à la place d'optimiser l'utilisation de la mémoire, en
relire les tables de symboles si nécessaire. Cela peut être nécessaire si ld manque de
de l'espace mémoire tout en liant un gros exécutable.

--non-indéfini
-z def
Signalez les références de symboles non résolues à partir de fichiers d'objets normaux. Ceci est fait même si
l'éditeur de liens crée une bibliothèque partagée non symbolique. L'interrupteur
--[no-]allow-shlib-undefined contrôle le comportement des rapports non résolus
références trouvées dans les bibliothèques partagées liées.

--autoriser-définitions-multiples
-z muldefs
Normalement, lorsqu'un symbole est défini plusieurs fois, l'éditeur de liens signalera une erreur fatale
Erreur. Ces options permettent plusieurs définitions et la première définition sera utilisée.

--allow-shlib-undéfini
--no-allow-shlib-undéfini
Autorise (par défaut) ou interdit les symboles non définis dans les bibliothèques partagées. Ce commutateur
est similaire à --non-indéfini sauf qu'il détermine le comportement lorsque le
les symboles non définis se trouvent dans une bibliothèque partagée plutôt que dans un fichier objet normal. Cela fait
n'affecte pas la façon dont les symboles non définis dans les fichiers objets normaux sont traités.

La raison pour laquelle --allow-shlib-undéfini est la valeur par défaut est que la bibliothèque partagée
étant spécifié au moment de la liaison peut ne pas être le même que celui qui est disponible au chargement
temps, de sorte que les symboles peuvent en fait être résolus au moment du chargement. De plus il y a quelques
systèmes (par exemple BeOS) où les symboles non définis dans les bibliothèques partagées sont normaux. (Le noyau
les patche au moment du chargement pour sélectionner la fonction la plus appropriée pour le courant
architecture. Ceci est utilisé par exemple pour sélectionner dynamiquement un memset approprié
fonction). Apparemment, il est également normal que les bibliothèques partagées HPPA aient
symboles

--pas de version non définie
Normalement, lorsqu'un symbole a une version indéfinie, l'éditeur de liens l'ignore. Cette
L'option interdit les symboles avec une version non définie et une erreur fatale sera émise
à la place.

--symver par défaut
Créez et utilisez une version de symbole par défaut (le sonname) pour les symboles exportés sans version.

--default-importé-symver
Créez et utilisez une version de symbole par défaut (le sonname) pour les symboles importés non versionnés.

--pas de décalage d'avertissement
Normalement ld donnera une erreur si vous essayez de lier ensemble des fichiers d'entrée qui sont
incompatibles pour une raison quelconque, peut-être parce qu'ils ont été compilés pour différents
processeurs ou pour différents endiannesses. Cette option indique ld qu'il devrait
permettre silencieusement de telles erreurs possibles. Cette option ne doit être utilisée qu'avec précaution, en
cas où vous avez pris des mesures spéciales qui garantissent que les erreurs de l'éditeur de liens sont
inappropriée.

--pas d'archive entière
Désactiver l'effet de la --archive-entière option pour les fichiers d'archives suivants.

--noinhibit-exec
Conservez le fichier de sortie exécutable chaque fois qu'il est encore utilisable. Normalement, l'éditeur de liens
ne produira pas de fichier de sortie s'il rencontre des erreurs pendant le processus de liaison ; ce
se ferme sans écrire de fichier de sortie lorsqu'il émet une erreur quelle qu'elle soit.

-nostdlib
Recherchez uniquement les répertoires de bibliothèque explicitement spécifiés sur la ligne de commande. Une bibliothèque
répertoires spécifiés dans les scripts de l'éditeur de liens (y compris les scripts de l'éditeur de liens spécifiés sur le
ligne de commande) sont ignorés.

--oformat format de sortie
ld peut être configuré pour prendre en charge plus d'un type de fichier objet. Si votre ld is
configuré de cette façon, vous pouvez utiliser le --oformat option pour spécifier le format binaire pour
le fichier objet de sortie. Même quand ld est configuré pour prendre en charge un objet alternatif
formats, vous n'avez généralement pas besoin de le spécifier, car ld doit être configuré pour produire
comme format de sortie par défaut le format le plus courant sur chaque machine. format de sortie est une
chaîne de texte, le nom d'un format particulier pris en charge par les bibliothèques BFD. (Vous pouvez
lister les formats binaires disponibles avec objdump -i.) La commande de script
"OUTPUT_FORMAT" peut également spécifier le format de sortie, mais cette option le remplace.

-tarte
--pic-exécutable
Créez un exécutable indépendant de la position. Ceci n'est actuellement pris en charge que sur ELF
plates-formes. Les exécutables indépendants de la position sont similaires aux bibliothèques partagées en ce sens
ils sont déplacés par l'éditeur de liens dynamique vers l'adresse virtuelle choisie par le système d'exploitation
eux (qui peuvent varier entre les invocations). Comme les exécutables normaux liés dynamiquement
ils peuvent être exécutés et les symboles définis dans l'exécutable ne peuvent pas être remplacés par
bibliothèques partagées.

-qmagie
Cette option est ignorée pour la compatibilité Linux.

-Qy Cette option est ignorée pour la compatibilité SVR4.

--se détendre
Une option avec des effets dépendants de la machine. Cette option n'est prise en charge que sur quelques
cibles.

Sur certaines plateformes, le --se détendre l'option effectue des optimisations globales qui deviennent
possible lorsque l'éditeur de liens résout l'adressage dans le programme, comme l'assouplissement de l'adresse
modes et synthétiser de nouvelles instructions dans le fichier objet de sortie.

Sur certaines plates-formes, ces optimisations globales du temps de liaison peuvent rendre le débogage symbolique de
l'exécutable résultant impossible. C'est connu pour être le cas pour le Matsushita
Famille de processeurs MN10200 et MN10300.

Sur les plates-formes où cela n'est pas pris en charge, --se détendre est accepté, mais ignoré.

--retain-symboles-fichier nom de fichier
Conserver uniquement les symboles répertoriés dans le fichier nom de fichier, en écartant tous les autres. nom de fichier
est simplement un fichier plat, avec un nom de symbole par ligne. Cette option est particulièrement
utile dans les environnements (tels que VxWorks) où une grande table de symboles globale est
accumulés progressivement, pour conserver la mémoire d'exécution.

--retain-symboles-fichier ne sauraient rejeter les symboles non définis ou les symboles nécessaires pour
déménagements.

Vous ne pouvez spécifier que --retain-symboles-fichier une fois dans la ligne de commande. Il remplace -s
ainsi que -S.

-rchemin dir
Ajoutez un répertoire au chemin de recherche de la bibliothèque d'exécution. Ceci est utilisé lors de la liaison d'un ELF
exécutable avec des objets partagés. Tous -rchemin les arguments sont concaténés et passés à
l'éditeur de liens d'exécution, qui les utilise pour localiser les objets partagés lors de l'exécution. Les -rchemin
L'option est également utilisée lors de la localisation d'objets partagés nécessaires aux objets partagés
explicitement inclus dans le lien ; voir la description du -rpath-lien option. Si
-rchemin n'est pas utilisé lors de la liaison d'un exécutable ELF, le contenu de l'environnement
La variable "LD_RUN_PATH" sera utilisée si elle est définie.

La -rchemin L'option peut également être utilisée sur SunOS. Par défaut, sur SunOS, l'éditeur de liens
former un correctif de recherche d'exécution à partir de tous les -L options qui lui sont données. Si un -rchemin option
est utilisé, le chemin de recherche d'exécution sera formé exclusivement à l'aide du -rchemin options,
ignorant le -L option. Cela peut être utile lors de l'utilisation de gcc, qui ajoute de nombreux -L
options qui peuvent être sur les systèmes de fichiers montés NFS.

Pour la compatibilité avec d'autres linkers ELF, si le -R l'option est suivie d'un répertoire
nom, plutôt qu'un nom de fichier, il est traité comme le -rchemin option.

-rpath-lien DIR
Lorsque vous utilisez ELF ou SunOS, une bibliothèque partagée peut en nécessiter une autre. Cela se produit lorsqu'un
Le lien "ld -shared" inclut une bibliothèque partagée comme l'un des fichiers d'entrée.

Lorsque l'éditeur de liens rencontre une telle dépendance lors d'une opération non partagée, non déplaçable
lien, il essaiera automatiquement de localiser la bibliothèque partagée requise et de l'inclure
dans le lien, s'il n'est pas inclus explicitement. Dans un tel cas, le -rpath-lien option
spécifie le premier ensemble de répertoires à rechercher. Les -rpath-lien option peut spécifier
une séquence de noms de répertoires soit en spécifiant une liste de noms séparés par
deux-points, ou en apparaissant plusieurs fois.

Cette option doit être utilisée avec prudence car elle remplace le chemin de recherche qui peut avoir
été dur compilé dans une bibliothèque partagée. Dans un tel cas, il est possible d'utiliser
involontairement un chemin de recherche différent de celui de l'éditeur de liens d'exécution.

L'éditeur de liens utilise les chemins de recherche suivants pour localiser les bibliothèques partagées requises.

1. Tous les répertoires spécifiés par -rpath-lien options.

2. Tous les répertoires spécifiés par -rchemin option. La différence entre -rchemin ainsi que
-rpath-lien est-ce que les répertoires spécifiés par -rchemin les options sont incluses dans le
exécutable et utilisé au moment de l'exécution, tandis que le -rpath-lien l'option n'est efficace que
au moment de la liaison. C'est pour l'éditeur de liens natif uniquement.

3. Sur un système ELF, si le -rchemin et les options "rpath-link" n'ont pas été utilisées, recherchez le
contenu de la variable d'environnement "LD_RUN_PATH". C'est pour le linker natif
seulement.

4. Sous SunOS, si le -rchemin l'option n'a pas été utilisée, recherchez les répertoires spécifiés
en utilisant -L options.

5. Pour un éditeur de liens natif, le contenu de la variable d'environnement "LD_LIBRARY_PATH".

6. Pour un linker ELF natif, les répertoires dans "DT_RUNPATH" ou "DT_RPATH" d'un
bibliothèque sont recherchés pour les bibliothèques partagées dont elle a besoin. Les entrées "DT_RPATH" sont
ignoré si des entrées "DT_RUNPATH" existent.

7. Les répertoires par défaut, normalement / lib ainsi que / usr / lib.

8. Pour un éditeur de liens natif sur un système ELF, si le fichier /etc/ld.so.conf existe, la liste
de répertoires trouvés dans ce fichier.

Si la bibliothèque partagée requise n'est pas trouvée, l'éditeur de liens émettra un avertissement et
continuer avec le lien.

-partagé
-B partageable
Créez une bibliothèque partagée. Ceci n'est actuellement pris en charge que sur ELF, XCOFF et SunOS
plates-formes. Sous SunOS, l'éditeur de liens créera automatiquement une bibliothèque partagée si le -e
n'est pas utilisée et il y a des symboles non définis dans le lien.

--sort-commun
Cette option indique ld pour trier les symboles communs par taille lorsqu'il les place dans le
sections de sortie appropriées. Viennent d'abord tous les symboles à un octet, puis tous les deux
octet, puis tous les quatre octets, puis tout le reste. Ceci afin d'éviter les lacunes
entre les symboles en raison des contraintes d'alignement.

--sort-section prénom
Cette option appliquera "SORT_BY_NAME" à tous les modèles de section génériques dans l'éditeur de liens
scripts.

--sort-section alignement
Cette option appliquera "SORT_BY_ALIGNMENT" à tous les modèles de section génériques dans le
script de l'éditeur de liens.

--split-par-fichier [taille]
Similaire à --split-by-reloc mais crée une nouvelle section de sortie pour chaque fichier d'entrée lorsque
taille est atteinte. taille par défaut à une taille de 1 si elle n'est pas donnée.

--split-by-reloc [compter]
Essaie de créer des sections supplémentaires dans le fichier de sortie afin qu'aucune section de sortie ne soit
le fichier contient plus de compter déménagements. Ceci est utile lors de la génération d'énormes
fichiers déplaçables à télécharger dans certains noyaux temps réel avec l'objet COFF
format de fichier; puisque COFF ne peut représenter plus de 65535 déménagements en une seule
section. Notez que cela ne fonctionnera pas avec les formats de fichier objet qui ne
prendre en charge les sections arbitraires. L'éditeur de liens ne divisera pas les sections d'entrée individuelles
pour la redistribution, donc si une seule section d'entrée contient plus de compter déménagements
une section de sortie contiendra autant de relocalisations. compter par défaut à une valeur de
32768.

--Statistiques
Calculer et afficher des statistiques sur le fonctionnement de l'éditeur de liens, telles que l'exécution
utilisation du temps et de la mémoire.

--sysroot=annuaire
Utilisez annuaire comme emplacement de la racine système, remplaçant la valeur par défaut de configure-time.
Cette option n'est prise en charge que par les éditeurs de liens qui ont été configurés à l'aide de --avec-sysroot.

--format-traditionnel
Pour certaines cibles, la sortie de ld est différent à certains égards de la sortie de certains
éditeur de liens existant. Ce commutateur demande ld d'utiliser le format traditionnel à la place.

Par exemple, sur SunOS, ld combine les entrées en double dans la table de chaînes de symboles. Cette
peut réduire la taille d'un fichier de sortie avec des informations de débogage complètes de plus de 30
pour cent. Malheureusement, le programme SunOS "dbx" ne peut pas lire le programme résultant
("gdb" n'a aucun problème). Les --format-traditionnel l'interrupteur dit ld ne pas combiner
entrées en double.

--section-start Nom de la section=org
Localisez une section dans le fichier de sortie à l'adresse absolue donnée par org. Vous pouvez utiliser
cette option autant de fois que nécessaire pour localiser plusieurs sections dans la commande
ligne. org doit être un seul entier hexadécimal ; pour la compatibilité avec d'autres linkers,
vous pouvez omettre le premier 0x généralement associé à des valeurs hexadécimales. Remarque:
ne devrait pas y avoir d'espace blanc entre Nom de la section, le signe égal (``=''), et org.

-Tbss org
-Tdonnées org
-Ttexte org
Identique à --section-start, avec ".bss", ".data" ou ".text" comme Nom de la section.

--symboles-non résolus=méthode
Déterminez comment gérer les symboles non résolus. Il y a quatre valeurs possibles pour
méthode:

ignorer tout
Ne signalez aucun symbole non résolu.

rapport-tout
Signalez tous les symboles non résolus. C'est la valeur par défaut.

ignorer-dans-les-fichiers-objet
Signaler les symboles non résolus contenus dans les bibliothèques partagées, mais les ignorer
s'ils proviennent de fichiers objets normaux.

ignorer les bibliothèques partagées
Signalez les symboles non résolus provenant de fichiers objets normaux, mais ignorez-les si
ils proviennent de bibliothèques partagées. Cela peut être utile lors de la création d'une dynamique
binaire et il est connu que toutes les bibliothèques partagées qu'il devrait référencer
sont inclus sur la ligne de commande de l'éditeur de liens.

Le comportement des bibliothèques partagées peut également être contrôlé par le
--[no-]allow-shlib-undefined option.

Normalement, l'éditeur de liens générera un message d'erreur pour chaque symbole non résolu signalé
mais l'option --avertissement-symboles-non résolus peut changer cela en un avertissement.

--dll-verbeux
--verbeux
Afficher le numéro de version de ld et répertoriez les émulations d'éditeur de liens prises en charge. Affichage
quels fichiers d'entrée peuvent et ne peuvent pas être ouverts. Afficher le script de l'éditeur de liens utilisé par
l'éditeur de liens.

--version-script=fichier de script de version
Spécifiez le nom d'un script de version à l'éditeur de liens. Ceci est généralement utilisé lorsque
création de bibliothèques partagées pour spécifier des informations supplémentaires sur la version
hiérarchie pour la bibliothèque en cours de création. Cette option n'a de sens que sur ELF
plates-formes qui prennent en charge les bibliothèques partagées.

--warn-commun
Avertir lorsqu'un symbole commun est combiné avec un autre symbole commun ou avec un symbole
définition. Les linkers Unix permettent cette pratique quelque peu bâclée, mais les linkers sur certains
les autres systèmes d'exploitation ne le font pas. Cette option vous permet de trouver des problèmes potentiels
de combiner des symboles globaux. Malheureusement, certaines bibliothèques C utilisent cette pratique, donc
vous pouvez recevoir des avertissements concernant les symboles dans les bibliothèques ainsi que dans vos programmes.

Il existe trois types de symboles globaux, illustrés ici par des exemples en C :

int i = 1;
Une définition, qui va dans la section des données initialisées du fichier de sortie.

externe int i;
Une référence non définie, qui n'alloue pas d'espace. Il doit y avoir soit un
définition ou un symbole commun pour la variable quelque part.

int i;
Un symbole commun. S'il n'y a que (un ou plusieurs) symboles communs pour une variable,
il va dans la zone de données non initialisées du fichier de sortie. L'éditeur de liens fusionne
plusieurs symboles communs pour la même variable en un seul symbole. Si ils sont
de différentes tailles, il choisit la plus grande taille. L'éditeur de liens devient un symbole commun
dans une déclaration, s'il existe une définition de la même variable.

La --warn-commun L'option peut produire cinq types d'avertissements. Chaque avertissement consiste en
une paire de lignes : la première décrit le symbole que l'on vient de rencontrer, et la seconde
décrit le symbole précédent rencontré avec le même nom. L'un ou les deux
les symboles seront un symbole commun.

1. Transformer un symbole commun en référence, car il existe déjà une définition
pour le symbole.

( ): avertissement: commun de ` '
supplanté par définition
( ) : avertissement : défini ici

2. Transformer un symbole commun en référence, car une définition ultérieure du
symbole est rencontré. C'est le même cas que le cas précédent, sauf que le
les symboles sont rencontrés dans un ordre différent.

( ): avertissement : définition de ` '
commun prioritaire
( ): avertissement: commun est ici

3. Fusion d'un symbole commun avec un symbole commun précédent de même taille.

( ): avertissement: commun multiple
de ` '
( ): avertissement: le commun précédent est ici

4. Fusion d'un symbole commun avec un symbole commun plus grand précédent.

( ): avertissement: commun de ` '
remplacé par un plus grand commun
( ): avertissement: le plus grand commun est ici

5. Fusion d'un symbole commun avec un ancien symbole commun plus petit. C'est le même
comme le cas précédent, sauf que les symboles sont rencontrés dans un autre
ordre.

( ): avertissement: commun de ` '
plus petit commun
( ): avertissement: le plus petit commun est ici

--warn-constructeurs
Avertir si des constructeurs globaux sont utilisés. Ceci n'est utile que pour quelques fichiers objets
formatage. Pour les formats comme COFF ou ELF, l'éditeur de liens ne peut pas détecter l'utilisation de global
constructeurs.

--warn-multiple-gp
Avertir si plusieurs valeurs de pointeur global sont requises dans le fichier de sortie. C'est seulement
significatif pour certains processeurs, comme l'Alpha. Plus précisément, certains processeurs
placez les constantes de grande valeur dans une section spéciale. Un registre spécial (le registre mondial
pointeur) pointe au milieu de cette section, afin que les constantes puissent être chargées
efficacement via un mode d'adressage relatif du registre de base. Étant donné que le décalage en base-
le mode relatif du registre est fixe et relativement petit (par exemple, 16 bits), cela limite le
taille maximale du pool constant. Ainsi, dans les grands programmes, il est souvent nécessaire de
utiliser plusieurs valeurs de pointeur global afin de pouvoir adresser tous les possibles
constantes. Cette option provoque l'émission d'un avertissement chaque fois que ce cas se produit.

--warn-une fois
N'avertir qu'une seule fois pour chaque symbole non défini, plutôt qu'une fois par module qui fait référence à
le

--warn-section-aligner
Avertir si l'adresse d'une section de sortie est modifiée en raison de l'alignement. Typiquement,
l'alignement sera défini par une section d'entrée. L'adresse ne sera modifiée que si elle
pas explicitement spécifié ; c'est-à-dire, si la commande "SECTIONS" ne spécifie pas de début
l'adresse de la section.

--warn-shared-textrel
Avertir si l'éditeur de liens ajoute un DT_TEXTREL à un objet partagé.

--avertissement-symboles-non résolus
Si l'éditeur de liens va signaler un symbole non résolu (voir l'option
--symboles non résolus), il générera normalement une erreur. Cette option permet
générer un avertissement à la place.

--erreur-symboles-non résolus
Cela restaure le comportement par défaut de l'éditeur de liens de génération d'erreurs lorsqu'il signale
symboles non résolus.

--archive-entière
Pour chaque archive mentionnée sur la ligne de commande après le --archive-entière option,
inclure chaque fichier objet dans l'archive dans le lien, plutôt que de rechercher le
archive pour les fichiers objet requis. Ceci est normalement utilisé pour transformer un fichier d'archive
dans une bibliothèque partagée, forçant chaque objet à être inclus dans la bibliothèque partagée résultante
une bibliothèque. Cette option peut être utilisée plusieurs fois.

Deux remarques lors de l'utilisation de cette option de gcc : d'abord, gcc ne connaît pas cette option,
donc il faut utiliser -Wl,-archive-entière. Deuxièmement, n'oubliez pas d'utiliser
-Wl,-pas-d'archive-entière après votre liste d'archives, car gcc ajoutera sa propre liste
d'archives à votre lien et vous ne voudrez peut-être pas que ce drapeau les affecte également.

--envelopper symbole
Utilisez une fonction wrapper pour symbole. Toute référence indéfinie à symbole sera résolu
Envelopper_symbole". Toute référence non définie à "__real_symbole" sera résolu à
symbole.

Cela peut être utilisé pour fournir un wrapper pour une fonction système. La fonction wrapper
devrait s'appeler "__wrap_symbole". S'il souhaite appeler la fonction système, il doit
appelez "__réel_symbole".

Voici un exemple trivial :

annuler *
__wrap_malloc (taille_t c)
{
printf ("malloc appelé avec %zu\n", c);
renvoie __real_malloc (c);
}

Si vous liez un autre code avec ce fichier en utilisant --envelopper malloc, puis tous les appels à "malloc"
appellera la fonction "__wrap_malloc" à la place. L'appel à "__real_malloc" dans
"__wrap_malloc" appellera la vraie fonction "malloc".

Vous pouvez également fournir une fonction "__real_malloc", afin que les liens sans le
--envelopper option réussira. Si vous faites cela, vous ne devriez pas mettre la définition de
"__real_malloc" dans le même fichier que "__wrap_malloc" ; si vous le faites, l'assembleur peut
résoudre l'appel avant que l'éditeur de liens n'ait la possibilité de l'envelopper dans "malloc".

--enable-new-dtags
--disable-new-dtags
Cet éditeur de liens peut créer les nouvelles balises dynamiques dans ELF. Mais les anciens systèmes ELF peuvent ne pas
les comprendre. Si vous spécifiez --enable-new-dtags, les balises dynamiques seront créées
comme requis. Si vous spécifiez --disable-new-dtags, aucune nouvelle balise dynamique ne sera créée.
Par défaut, les nouvelles balises dynamiques ne sont pas créées. Notez que ces options sont uniquement
disponible pour les systèmes ELF.

--hash-taille=nombre
Définissez la taille par défaut des tables de hachage de l'éditeur de liens sur un nombre premier proche de nombre.
L'augmentation de cette valeur peut réduire le temps nécessaire à l'éditeur de liens pour effectuer son
tâches, au détriment de l'augmentation des besoins en mémoire de l'éditeur de liens. de la même manière
réduire cette valeur peut réduire les besoins en mémoire au détriment de la vitesse.

--réduire-les frais généraux de mémoire
Cette option réduit les besoins en mémoire au moment de l'exécution de ld, au détriment de la liaison
la vitesse. Cela a été introduit pour sélectionner l'ancien algorithme O(n^2) pour le fichier de carte de lien
génération, plutôt que le nouvel algorithme O(n) qui utilise environ 40 % de mémoire en plus pour
stockage de symboles.

Un autre effet du commutateur est de définir la taille de la table de hachage par défaut à 1021, ce qui
économise à nouveau de la mémoire au prix d'un allongement du temps d'exécution de l'éditeur de liens. Ce n'est pas fait
cependant si le --hash-taille l'interrupteur a été utilisé.

La --réduire-les frais généraux de mémoire peut également être utilisé pour permettre d'autres compromis dans
futures versions de l'éditeur de liens.

L'éditeur de liens i386 PE prend en charge le -partagé option, ce qui fait que la sortie est un
bibliothèque liée dynamiquement (DLL) au lieu d'un exécutable normal. Vous devez nommer le
afficher "*.dll" lorsque vous utilisez cette option. De plus, l'éditeur de liens prend entièrement en charge le
fichiers standard "*.def", qui peuvent être spécifiés sur la ligne de commande de l'éditeur de liens comme un objet
(en fait, il devrait précéder les archives à partir desquelles il exporte les symboles, pour s'assurer qu'ils obtiennent
lié, tout comme un fichier objet normal).

En plus des options communes à toutes les cibles, l'éditeur de liens PE i386 prend en charge des
les options de ligne de commande spécifiques à la cible i386 PE. Des options qui prennent des valeurs
peuvent être séparés de leurs valeurs par un espace ou un signe égal.

--add-stdcall-alias
Si donné, symboles avec un suffixe stdcall (@nn) sera exporté tel quel et également avec le
suffixe supprimé. [Cette option est spécifique au port ciblé i386 PE de l'éditeur de liens]

--base-fichier filet
Utilisez filet comme nom d'un fichier dans lequel enregistrer les adresses de base de tous les
relocalisations nécessaires pour générer des DLL avec outil dll. [Il s'agit d'un i386 PE spécifique
option]

--dll
Créez une DLL au lieu d'un exécutable standard. Vous pouvez également utiliser -partagé ou spécifiez un
"LIBRARY" dans un fichier ".def" donné. [Cette option est spécifique au i386 PE ciblé
port de l'éditeur de liens]

--enable-stdcall-fixup
--disable-stdcall-fixup
Si le lien trouve un symbole qu'il ne peut pas résoudre, il tentera de faire ``fuzzy
reliant'' en recherchant un autre symbole défini qui ne diffère que par le format du
nom du symbole (cdecl vs stdcall) et résoudra ce symbole en se liant à la correspondance.
Par exemple, le symbole non défini "_foo" peut être lié à la fonction "_foo@12", ou
le symbole non défini "_bar@16" peut être lié à la fonction "_bar". Quand le
l'éditeur de liens fait cela, il affiche un avertissement, car il aurait normalement dû échouer à se lier,
mais parfois les bibliothèques d'importation générées à partir de DLL tierces peuvent avoir besoin de cette fonctionnalité
être utilisable. Si vous spécifiez --enable-stdcall-fixup, cette fonctionnalité est entièrement activée
et les avertissements ne sont pas imprimés. Si vous spécifiez --disable-stdcall-fixup, cette fonctionnalité est
désactivé et de telles discordances sont considérées comme des erreurs. [Cette option est spécifique à
le port ciblé i386 PE de l'éditeur de liens]

--export-tous les symboles
Si donné, tous les symboles globaux dans les objets utilisés pour construire une DLL seront exportés par
la DLL. Notez qu'il s'agit de la valeur par défaut s'il n'y aurait pas d'exportation
symboles. Lorsque les symboles sont explicitement exportés via des fichiers DEF ou implicitement exportés
via les attributs de fonction, la valeur par défaut est de ne rien exporter d'autre à moins que cette option
est donné. Notez que les symboles "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12" et "impure_ptr" ne seront pas automatiquement exportés. Aussi,
les symboles importés d'autres DLL ne seront pas réexportés, pas plus que les symboles spécifiant
la disposition interne de la DLL telle que celles commençant par "_head_" ou se terminant par
"_mon nom". De plus, aucun symbole de "libgcc", "libstd++", "libmingw32", ou
"crtX.o" sera exporté. Symboles dont les noms commencent par "__rtti_" ou "__builtin_"
ne sera pas exporté, pour aider avec les DLL C++. Enfin, il existe une longue liste de
symboles cygwin-private qui ne sont pas exportés (évidemment, cela s'applique lors de la construction
DLL pour les cibles cygwin). Ces exclusions cygwin sont : "_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" et "environ". [Cette option est spécifique au i386 PE ciblé
port de l'éditeur de liens]

--exclude-symboles symbole,symbole...
Spécifie une liste de symboles qui ne doivent pas être automatiquement exportés. Le symbole
les noms peuvent être délimités par des virgules ou des deux-points. [Cette option est spécifique au i386 PE
port ciblé de l'éditeur de liens]

--file-alignement
Spécifiez l'alignement du fichier. Les sections du fichier commenceront toujours aux décalages du fichier
qui sont des multiples de ce nombre. La valeur par défaut est 512. [Cette option est spécifique
au port ciblé i386 PE de l'éditeur de liens]

--tas réserve
--tas réserve,commettre
Spécifiez la quantité de mémoire à réserver (et éventuellement valider) à utiliser comme tas pour
ce programme. La valeur par défaut est 1Mb réservé, 4K engagé. [Cette option est spécifique à
le port ciblé i386 PE de l'éditeur de liens]

--image-base Plus-value
Utilisez Plus-value comme adresse de base de votre programme ou dll. C'est la mémoire la plus basse
emplacement qui sera utilisé lors du chargement de votre programme ou dll. Pour réduire le besoin de
déplacer et améliorer les performances de vos dll, chacune doit avoir une adresse de base unique
et ne pas chevaucher d'autres DLL. La valeur par défaut est 0x400000 pour les exécutables, et
0x10000000 pour les dll. [Cette option est spécifique au port ciblé i386 PE du
éditeur de liens]

--tuer à
S'ils sont fournis, les suffixes stdcall (@nn) seront supprimés des symboles avant qu'ils ne soient
exporté. [Cette option est spécifique au port ciblé i386 PE de l'éditeur de liens]

--conscient des grandes adresses
Si donné, le bit approprié dans le champ ``Charateristics'' de l'en-tête COFF est
défini pour indiquer que cet exécutable prend en charge les adresses virtuelles supérieures à 2
gigaoctets. Cela doit être utilisé en conjonction avec le /3GB ou /USERVA=Plus-value mégaoctets
dans la section ``[operating systems]'' du BOOT.INI. Sinon, ce peu
n'a aucun effet. [Cette option est spécifique aux ports PE ciblés de l'éditeur de liens]

--version-image-major Plus-value
Définit le numéro majeur de la ``version de l'image''. La valeur par défaut est 1. [Cette option est
spécifique au port ciblé i386 PE de l'éditeur de liens]

--version majeure du système d'exploitation Plus-value
Définit le numéro majeur de la ``version os''. La valeur par défaut est 4. [Cette option est spécifique
au port ciblé i386 PE de l'éditeur de liens]

--version-major-du-sous-système Plus-value
Définit le numéro majeur de la ``version du sous-système''. La valeur par défaut est 4. [Cette option est
spécifique au port ciblé i386 PE de l'éditeur de liens]

--version-image-mineur Plus-value
Définit le numéro mineur de la ``version de l'image''. La valeur par défaut est 0. [Cette option est
spécifique au port ciblé i386 PE de l'éditeur de liens]

--version mineure du système d'exploitation Plus-value
Définit le numéro mineur de la ``version os''. La valeur par défaut est 0. [Cette option est spécifique
au port ciblé i386 PE de l'éditeur de liens]

--version-du-sous-système-mineur Plus-value
Définit le numéro mineur de la ``version du sous-système''. La valeur par défaut est 0. [Cette option est
spécifique au port ciblé i386 PE de l'éditeur de liens]

--output-def filet
L'éditeur de liens créera le fichier filet qui contiendra un fichier DEF correspondant à
la DLL générée par l'éditeur de liens. Ce fichier DEF (qui devrait s'appeler "*.def") peut
être utilisé pour créer une bibliothèque d'importation avec "dlltool" ou peut être utilisé comme référence à
symboles exportés automatiquement ou implicitement. [Cette option est spécifique au i386 PE
port ciblé de l'éditeur de liens]

--out-implib filet
L'éditeur de liens créera le fichier filet qui contiendra une lib d'import correspondant à
la DLL générée par l'éditeur de liens. Cette lib d'import (qui devrait s'appeler "*.dll.a" ou
"*.a" peut être utilisé pour lier les clients à la DLL générée ; ce comportement rend
possible d'ignorer une étape de création de bibliothèque d'importation "dlltool" distincte. [Cette option est
spécifique au port ciblé i386 PE de l'éditeur de liens]

--enable-auto-image-base
Choisissez automatiquement la base d'image pour les DLL, sauf si une est spécifiée à l'aide de la
Argument "--image-base". En utilisant un hachage généré à partir du nom de dll pour créer un
bases d'images pour chaque DLL, collisions en mémoire et déplacements qui peuvent retarder le programme
l'exécution sont évitées. [Cette option est spécifique au port ciblé i386 PE du
éditeur de liens]

--disable-auto-image-base
Ne générez pas automatiquement une base d'images unique. S'il n'y a pas d'utilisateur spécifié
image base ("--image-base") puis utilisez la valeur par défaut de la plate-forme. [Cette option est spécifique
au port ciblé i386 PE de l'éditeur de liens]

--dll-search-prefix un magnifique
Lors de la liaison dynamique à une dll sans bibliothèque d'importation, recherchez
" .dll" de préférence à "lib .dll". Ce comportement permet
distinction facile entre les DLL construites pour les différentes "sous-plateformes": native, cygwin,
uwin, pw, etc. Par exemple, les DLL cygwin utilisent généralement "--dll-search-prefix=cyg".
[Cette option est spécifique au port ciblé i386 PE de l'éditeur de liens]

--enable-auto-importation
Faire un lien sophistiqué de "_symbol" à "__imp__symbol" pour les importations de DONNÉES à partir de DLL,
et créez les symboles de thunking nécessaires lors de la construction des bibliothèques d'importation avec
ces exportations de données. Remarque : L'utilisation de l'extension 'auto-import' entraînera le texte
section du fichier image à rendre accessible en écriture. Ceci n'est pas conforme au PE-COFF
spécification de format publiée par Microsoft.

L'utilisation de "l'importation automatique" fonctionnera généralement "tout simplement" - mais parfois vous pouvez voir ceci
message:

"La variable ' ' ne peut pas être importée automatiquement. Veuillez lire la documentation de ld
"--enable-auto-import" pour plus de détails."

Ce message se produit lorsqu'une (sous-)expression accède à une adresse finalement donnée par
la somme de deux constantes (les tables d'import Win32 n'en autorisent qu'une). Les cas où cela
peuvent se produire incluent des accès aux champs membres des variables de structure importées d'une DLL,
ainsi que l'utilisation d'un index constant dans une variable de tableau importée d'une DLL. Tout
Les variables multimots (tableaux, structs, long long, etc.) peuvent déclencher cette condition d'erreur.
Cependant, quel que soit le type de données exact de la variable exportée incriminée, ld
toujours le détecter, émettre l'avertissement et quitter.

Il existe plusieurs façons de résoudre cette difficulté, quel que soit le type de données du
variable exportée :

Une façon consiste à utiliser le commutateur --enable-runtime-pseudo-reloc. Cela laisse la tâche de
ajuster les références dans votre code client pour l'environnement d'exécution, donc cette méthode fonctionne
uniquement lorsque l'environnement d'exécution prend en charge cette fonctionnalité.

Une deuxième solution consiste à forcer l'une des « constantes » à être une variable, c'est-à-dire
inconnu et non optimisable au moment de la compilation. Pour les tableaux, il y a deux possibilités :
a) faire de l'indexé (l'adresse du tableau) une variable, ou b) faire de l'index « constant »
une variable. Ainsi:

type externe tableau_externe[] ;
tableau_externe[1] -->
{ type volatile *t=extern_array; t[1] }

or

type externe tableau_externe[] ;
tableau_externe[1] -->
{ int volatile t=1; tableau_externe[t] }

Pour les structs (et la plupart des autres types de données multimots), la seule option est de faire le
struct lui-même (ou le long long, ou la ...) variable :

structure externe s structure_externe;
extern_struct.field -->
{ struct volatile s *t=&extern_struct; t->champ }

or

externe long long extern_ll ;
extern_ll -->
{ volatile long long * local_ll=&extern_ll; *local_ll }

Une troisième méthode pour surmonter cette difficulté consiste à abandonner l'« importation automatique » pour le
symbole incriminé et marquez-le avec "__declspec(dllimport)". Cependant, en pratique que
nécessite l'utilisation de #defines au moment de la compilation pour indiquer si vous construisez une DLL,
construire un code client qui sera lié à la DLL, ou simplement créer/lier à un fichier statique
une bibliothèque. En faisant le choix entre les différentes méthodes de résolution du « direct
adresse avec un problème de décalage constant, vous devriez considérer l'utilisation typique du monde réel :

Original:

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

Solution 1:

--foo.h
extern int arr[] ;
--foo.c
#include "foo.h"
void main(int argc, char **argv){
/* Cette solution de contournement concerne win32 et cygwin ; ne pas "optimiser" */
volatil entier *parr = arr;
printf("%d\n",parr[1]);
}

Solution 2:

--foo.h
/* Remarque : l'auto-export est supposé (pas de __declspec(dllexport)) */
#if (défini(_WIN32) ⎪⎪ défini(__CYGWIN__)) && \
!(défini(FOO_BUILD_DLL) ⎪⎪ défini(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#else
#définir FOO_IMPORT
#endif
extern FOO_IMPORT int arr[] ;
--foo.c
#include "foo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

Une quatrième façon d'éviter ce problème est de recoder votre bibliothèque pour utiliser un
plutôt qu'une interface de données pour les variables incriminées (par exemple set_foo() ainsi que
get_foo() fonctions d'accesseur). [Cette option est spécifique au port ciblé i386 PE
de l'éditeur de liens]

--disable-auto-importation
N'essayez pas de faire un lien sophistiqué de "_symbol" à "__imp__symbol" pour DATA
les importations à partir de DLL. [Cette option est spécifique au port ciblé i386 PE du
éditeur de liens]

--enable-runtime-pseudo-reloc
Si votre code contient des expressions décrites dans la section --enable-auto-import, c'est-à-dire
DATA importe de la DLL avec un décalage non nul, ce commutateur créera un vecteur de
'pseudo relocalisations d'exécution' qui peuvent être utilisées par l'environnement d'exécution pour ajuster
références à ces données dans votre code client. [Cette option est spécifique au i386 PE
port ciblé de l'éditeur de liens]

--disable-runtime-pseudo-reloc
Ne créez pas de pseudo-relocalisations pour les importations de données avec un décalage différent de zéro à partir de DLL. C'est
le défaut. [Cette option est spécifique au port ciblé i386 PE de l'éditeur de liens]

--enable-extra-pe-débogage
Afficher des informations de débogage supplémentaires liées au thunking de symbole d'importation automatique. [Cette option est
spécifique au port ciblé i386 PE de l'éditeur de liens]

--section-alignement
Définit l'alignement de la section. Les sections en mémoire commenceront toujours aux adresses qui
sont un multiple de ce nombre. La valeur par défaut est 0x1000. [Cette option est spécifique au
port ciblé i386 PE de l'éditeur de liens]

--empiler réserve
--empiler réserve,commettre
Spécifiez la quantité de mémoire à réserver (et éventuellement valider) à utiliser comme pile
pour ce programme. La valeur par défaut est 2 Mo réservés, 4K engagés. [Cette option est
spécifique au port ciblé i386 PE de l'éditeur de liens]

--sous-système qui
--sous-système qui:majeur
--sous-système qui:majeur.mineur
Spécifie le sous-système sous lequel votre programme s'exécutera. Les valeurs légales de
qui sont "native", "windows", "console", "posix" et "xbox". Vous pouvez éventuellement définir
la version du sous-système également. Les valeurs numériques sont également acceptées pour qui. [Cette option
est spécifique au port ciblé i386 PE de l'éditeur de liens]

Les linkers 68HC11 et 68HC12 prennent en charge des options spécifiques pour contrôler la banque de mémoire
cartographie de commutation et génération de code de trampoline.

--pas de trampoline
Cette option désactive la génération de trampoline. Par défaut, un trampoline est
généré pour chaque fonction far qui est appelée à l'aide d'une instruction "jsr" (cette
se produit lorsqu'un pointeur vers une fonction far est pris).

--banque-fenêtre prénom
Cette option indique à l'éditeur de liens le nom de la région mémoire dans le MÉMOIRE
spécification qui décrit la fenêtre de banque de mémoire. La définition d'une telle région est
ensuite utilisé par l'éditeur de liens pour calculer la pagination et les adresses dans la fenêtre de mémoire.

ENVIRONNEMENT


Vous pouvez modifier le comportement de ld avec les variables d'environnement "GNUTARGET",
"LDEMULATION" et "COLLECT_NO_DEMANGLE".

"GNUTARGET" détermine le format de l'objet du fichier d'entrée si vous n'utilisez pas -b (ou son synonyme
--format). Sa valeur doit être l'un des noms BFD pour un format d'entrée. Si il n'y a pas
"GNUTARGET" dans l'environnement, ld utilise le format naturel de la cible. Si "GNUTARGET"
est défini sur « par défaut », alors BFD tente de découvrir le format d'entrée en examinant le binaire
fichiers d'entrée ; cette méthode réussit souvent, mais il y a des ambiguïtés potentielles, car il
n'est pas une méthode pour s'assurer que le nombre magique utilisé pour spécifier les formats de fichier objet est
unique. Cependant, la procédure de configuration de BFD sur chaque système place le
format conventionnel pour ce système en premier dans la liste de recherche, donc les ambiguïtés sont résolues
en faveur de la convention.

"LDEMULATION" détermine l'émulation par défaut si vous n'utilisez pas le -m option. La
l'émulation peut affecter divers aspects du comportement de l'éditeur de liens, en particulier l'éditeur de liens par défaut
scénario. Vous pouvez lister les émulations disponibles avec le --verbeux or -V option. Si la
-m n'est pas utilisée et que la variable d'environnement "LDEMULATION" n'est pas définie, la
l'émulation par défaut dépend de la façon dont l'éditeur de liens a été configuré.

Normalement, l'éditeur de liens va par défaut démanteler les symboles. Toutefois, si
"COLLECT_NO_DEMANGLE" est défini dans l'environnement, il sera alors par défaut de ne pas démanteler
symboles. Cette variable d'environnement est utilisée de manière similaire par l'éditeur de liens "gcc"
programme d'emballage. La valeur par défaut peut être remplacée par le --démêler ainsi que --pas de démêlage
options.

Utilisez h8300-hms-ld en ligne à l'aide des services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

  • 1
    DivFix ++
    DivFix ++
    DivFix++ est votre réparation vidéo AVI et
    logiciel de prévisualisation. Il a conçu pour la réparation
    et prévisualisez les fichiers qui sont en téléchargement
    depuis ed2k(emule), torrent, gnutella, ftp...
    Télécharger DivFix++
  • 2
    Communauté JBoss
    Communauté JBoss
    Des projets communautaires mettant en vedette le
    dernières innovations à la pointe de la technologie
    applications. Notre projet phare JBoss AS est
    le leader Open Source,
    conforme aux normes...
    Télécharger la communauté JBoss
  • 3
    Fichier Django
    Fichier Django
    django Filer est un gestionnaire de fichiers
    application pour django qui fait
    la gestion des fichiers et des images est un jeu d'enfant.
    django-filer est un gestionnaire de fichiers
    demande de djang...
    Télécharger Django Filer
  • 4
    xCAT
    xCAT
    Boîte à outils d'administration de cluster extrême.
    xCAT est une gestion de cluster évolutive
    et outil de provisionnement qui fournit
    contrôle matériel, découverte et système d'exploitation
    disque/di...
    Télécharger xCAT
  • 5
    Psi
    Psi
    Psi est un puissant XMPP multiplateforme
    client conçu pour les utilisateurs expérimentés.
    Il existe des versions disponibles pour MS
    Windows, GNU/Linux et macOS.. Public :
    Les utilisateurs finaux...
    Télécharger Psi
  • 6
    Blobby Volée 2
    Blobby Volée 2
    Suite officielle du célèbre
    Jeu d'arcade Blobby Volley 1.x.
    Public : utilisateurs finaux/ordinateurs de bureau. Utilisateur
    interface : OpenGL, SDL. Programmation
    Langage : C++, Lua. C...
    Télécharger Blobby Volley 2
  • Plus "

Commandes Linux

Ad