LINK |
Liaison |
---|---|
MS-DOS 2 | Externe |
Syntaxe
LINK obj_file[+obj_file...][,[exe_file]][,[map_file]][,[library [+library...]]] [options] [;] |
LINK @response_file |
Paramètres
Nom | Description |
---|---|
obj_file | Ce paramètre permet d'indiquer le nom d'un fichier contenant un module objet relocalisable produit par MASM ou par un compilateur de langage de haut niveau. L'extension par défaut est .OBJ. |
exe_file | Ce paramètre permet d'indiquer le nom du fichier exécutable à produire par LINK (extension par défaut = .EXE). |
map_file | Ce paramètre permet d'indiquer le nom du fichier ou du périphérique de caractères devant recevoir une liste des noms, des adresses de chargement et des longueurs des segments dans exe_file. Valeur par défaut = périphérique NUL; extension par défaut = .MAP. |
library | Ce paramètre permet d'indiquer le nom d'une bibliothèque de modules d'objets à rechercher pour résoudre les références externes dans le(s) fichier(s) objet (extension par défaut = .LIB). |
response_file | Ce paramètre permet d'indiquer le nom d'un fichier texte contenant les paramètres LINK dans l'ordre dans lequel ils sont fournis lors d'une session LINK interactive. |
/CP:n | Ce paramètre permet de définir le nombre maximum de paragraphes de mémoire supplémentaires requis par exe_file. La valeur par défaut est 65535. |
/CPARMAXALLOC:n | Ce paramètre permet de définir le nombre maximum de paragraphes de mémoire supplémentaires requis par exe_file. La valeur par défaut est 65535. |
/DS | Ce paramètre permet de charger les données dans DGROUP à l'extrémité supérieure du segment de données. |
/DSALLOCATE | Ce paramètre permet de charger les données dans DGROUP à l'extrémité supérieure du segment de données. |
/DO | Ce paramètre permet d'organiser les segments selon la convention de classement des segments de langage Microsoft. |
/DOSSEG | Ce paramètre permet d'organiser les segments selon la convention de classement des segments de langage Microsoft. |
/E | Ce paramètre permet de compresser les séquences répétitives d'octets et optimise la table de relocalisation de exe_file. |
/EXEPACK | Ce paramètre permet de compresser les séquences répétitives d'octets et optimise la table de relocalisation de exe_file. |
/HI | Ce paramètre permet de provoquer le chargement de exe_file aussi haut que possible en mémoire lorsque exe_file est exécuté. |
/HIGH | Ce paramètre permet de provoquer le chargement de exe_file aussi haut que possible en mémoire lorsque exe_file est exécuté. |
/HE | Ce paramètre permet de répertorier les options LINK à l'écran. Aucun autre commutateur ou nom de fichier ne doit être utilisé avec ce commutateur. |
/HELP | Ce paramètre permet de répertorier les options LINK à l'écran. Aucun autre commutateur ou nom de fichier ne doit être utilisé avec ce commutateur. |
/LI | Ce paramètre permet de copier les informations de numéro de ligne (si disponibles) de obj_file vers map_file. Si aucun fichier de cartographie n'a été spécifié, ce commutateur en crée un. |
/LINENUMBERS | Ce paramètre permet de copier les informations de numéro de ligne (si disponibles) de obj_file vers map_file. Si aucun fichier de cartographie n'a été spécifié, ce commutateur en crée un. |
/M | Ce paramètre permet de copier une liste de tous les symboles publics déclarés dans obj_file dans map_file. Si aucun fichier de cartographie n'a été spécifié, ce commutateur en crée un. |
/MAP | Ce paramètre permet de copier une liste de tous les symboles publics déclarés dans obj_file dans map_file. Si aucun fichier de cartographie n'a été spécifié, ce commutateur en crée un. |
/NOD | Ce paramètre permet de faire en sorte que LINK ignore tous les noms de bibliothèque insérés dans le fichier objet par le compilateur de langage. |
/NODEFAULTLIBRARYSEARCH | Ce paramètre permet de faire en sorte que LINK ignore tous les noms de bibliothèque insérés dans le fichier objet par le compilateur de langage. |
/NOG | Ce paramètre permet de faire en sorte que LINK ignore les associations GROUP lors de l'attribution d'adresses. |
/NOGROUPASSOCIATION | Ce paramètre permet de faire en sorte que LINK ignore les associations GROUP lors de l'attribution d'adresses. |
/NOI | Ce paramètre permet de faire que LINK respecte la casse lors de la résolution des noms externes. |
/NOIGNORECASE | Ce paramètre permet de faire que LINK respecte la casse lors de la résolution des noms externes. |
/O:n | Ce paramètre permet de remplacer le numéro d'interruption utilisé par le gestionnaire de recouvrement (0 à 255, par défaut = 63 ou 3Fh). Ce commutateur doit être utilisé uniquement lors de la liaison avec un module d'exécution à partir d'un compilateur de langage qui prend en charge les recouvrements. |
/OVERLAYINTERRUPT:n | Ce paramètre permet de remplacer le numéro d'interruption utilisé par le gestionnaire de recouvrement (0 à 255, par défaut = 63 ou 3Fh). Ce commutateur doit être utilisé uniquement lors de la liaison avec un module d'exécution à partir d'un compilateur de langage qui prend en charge les recouvrements. |
/P | Ce paramètre permet de provoquer la pause de LINK et invite l'utilisateur à changer de disque avant d'écrire le fichier exe_file. |
/PAUSE | Ce paramètre permet de provoquer la pause de LINK et invite l'utilisateur à changer de disque avant d'écrire le fichier exe_file. |
/SE:n | Ce paramètre permet de définir le nombre maximum de segments pouvant être traités (1 à 1024, par défaut = 128). |
/SEGMENTS:n | Ce paramètre permet de définir le nombre maximum de segments pouvant être traités (1 à 1024, par défaut = 128). |
/ST:n | Ce paramètre permet de définir la taille du segment de pile de l'exe_file sur n octets 1 à 65535. |
/STACK:n | Ce paramètre permet de définir la taille du segment de pile de l'exe_file sur n octets 1 à 65535. |
Description
Cette commande permet de lancer le fabriquant de liaisons. Ainsi, elle effectue la combinaison des modules d'objets relocalisables dans un fichier exécutable (.EXE).
Remarques
- La commande LINK combine des modules d'objets déplaçables dans un fichier exécutable au format .EXE. La commande LINK peut être utilisé avec des fichiers objets produits par n'importe quel compilateur ou assembleur de langage de haut niveau prenant en charge le format de module objet Microsoft.
- Le paramètre obj_file, étant obligatoire, spécifie un ou plusieurs fichiers contenant des modules d'objets relocalisables. Si plusieurs fichiers objets sont liés, leurs noms doivent être séparés par un opérateur plus (+) ou un espace. Si aucune extension n'est spécifiée pour un fichier objet, LINK fournit l'extension .OBJ. Certains compilateurs de langage de programmation haut niveau prennent en charge le partitionnement du programme exécutable en un segment racine et un ou plusieurs segments de recouvrement et incluent un gestionnaire de recouvrement spécial dans leurs bibliothèques; lorsque ces compilateurs sont utilisés, les modules objet composant chaque segment de recouvrement doivent être entourés de parenthèses dans la ligne de commande LINK.
- Le paramètre exe_file spécifie le nom du fichier exécutable créé par LINK. La valeur par défaut est le même nom de fichier que le premier fichier objet, mais avec l'extension .EXE.
- Le paramètre map_file désigne le fichier ou le périphérique de caractères pour recevoir la liste LINK du nom, de l'adresse de chargement et de la longueur de chacun des segments de exe_file. Le fichier de cartographie comprend également les noms et les adresses de chargement de tous les groupes du programme, le point d'entrée du programme et, si le commutateur /M est utilisé, tous les symboles publics et leurs adresses. Si le commutateur /LI est utilisé et si les numéros de ligne ont été insérés dans obj_file par le compilateur, l'adresse de départ de chaque ligne de programme obj_file est également copiée dans map_file. L'extension par défaut d'un fichier de cartographie est .MAP. Si le commutateur /M ou /LI est utilisé, un fichier de cartographie est créé à l'aide du nom du fichier .EXE spécifié même si map_file n'est pas spécifié. Si ni le commutateur /M ni le commutateur /LI ne sont utilisés et map_file n'est pas spécifié, aucune liste n'est créée.
- Le paramètre library spécifie la ou les bibliothèques de modules d'objets étant recherchées pour résoudre les références externes une fois tous les fichiers objets traités. L'extension par défaut des fichiers de bibliothèque est .LIB. Les noms de bibliothèques multiples doivent être séparés par des opérateurs plus (+) ou des espaces. Un maximum de 16 chemins de recherche peut être spécifié dans la ligne de commande LINK. Si un nom de bibliothèque est précédé d'un unité de disque et / ou d'un chemin, la commande LINK recherche uniquement l'emplacement spécifié. Si aucun unité de disque ou chemin ne précède un nom de la bibliothèque, la commande LINK recherche les fichiers de bibliothèque dans l'ordre suivant : L'unité de disque et répertoire actuels; tous les autres chemins de recherche de bibliothèque spécifiés dans la ligne de commande, dans l'ordre dans lequel ils ont été entrés; dans les répertoires spécifiés dans la variable d'environnement LIB=, s'il en existe une.
- Dans l'exemple suivant, LINK recherche uniquement le répertoire \ALTLIB sur l'unité de disque A pour trouver la bibliothèque MATH.LIB. Pour trouver la bibliothèque COMMON.LIB, la commande LINK recherche le répertoire courant sur l'unité de disque courant, puis le répertoire courant sur l'unité de disque B, puis le répertoire \LIB sur l'unité de disque D et enfin, tous les répertoires nommés dans la variable d'environnement LIB :
- Si des bibliothèques par défaut sont spécifiées dans les fichiers objets via des enregistrements spéciaux insérés par certains compilateurs de langage de haut niveau, ces bibliothèques seront recherchées après les bibliothèques nommées dans la ligne de commande ou le fichier de réponse.
- Si la commande LINK est entrée sans paramètres, LINK demande à l'utilisateur chaque nom de fichier nécessaire. La réponse par défaut pour chaque prompt (à l'exception du prompt obj_file) est affichée entre crochets et peut être sélectionnée en appuyant sur la touche Enter. S'il y a trop de noms d'obj_file ou de bibliothèque pour tenir sur une ligne, la ligne peut être terminée en entrant un opérateur plus (+) et en appuyant sur la touche Enter; la commande LINK répète ensuite le prompt. Si l'utilisateur termine une réponse par un caractère point-virgule (;), la commande LINK utilise les valeurs par défaut pour les champs restants.
- Lorsque la ligne de commande contient des noms de fichiers et des commutateurs, des virgules doivent être utilisées pour séparer les paramètres obj_file, exe_file, map_file et library. Si un nom de fichier n'est pas fourni, une virgule doit être utilisée pour marquer sa place. Si l'utilisateur place un point-virgule après un paramètre dans la ligne de commande, la commander LINK termine la ligne de commande au point-virgule et utilise les valeurs par défaut pour tous les paramètres restants.
- L'utilisateur peut automatiser des sessions LINK complexes impliquant plusieurs fichiers en créant un fichier de réponse. Le paramètre response_file doit être le nom d'un fichier ASCII correspondant ligne pour ligne aux réponses entrées dans une session LINK interactive normale. La dernière ligne du fichier de réponses doit se terminer par un caractère point-virgule (;) ou un retour chariot. Si tous les paramètres requis par LINK ne sont pas présents dans le fichier de réponses et que le fichier de réponses ne se termine pas par un point-virgule ou un retour chariot, LINK demande à l'utilisateur les informations manquantes.
- La commande LINK prend en charge de nombreuses options pouvant être appelées en incluant un commutateur dans la ligne de commande, dans le cadre de la réponse à un prompt LINK ou dans un fichier de réponses. Pour simplifier cette description, ces commutateurs sont regroupés selon leurs fonctions.
- Les commutateurs /E, /HE, /NOD, /NOI, /P et /SE:n affectent le fonctionnement général de la commande LINK. Le commutateur /E compresse les séquences répétitives d'octets dans exe_file et optimise certaines parties de la table de relocalisation dans l'entête de exe_file. Le commutateur /E fonctionne exactement comme l'utilitaire EXEPACK.
- Le commutateur /E n'économise pas toujours une quantité importante d'espace disque et peut même augmenter la taille du fichier lorsqu'il est utilisé avec de petits programmes ayant peu de déplacements de chargement ou de caractères répétés. L'utilitaire Microsoft Symbolic Debugger (SYMDEB) ne peut pas être utilisé avec des fichiers compressés.
- Le commutateur /HE affiche les options disponibles à l'écran. Aucun autre commutateur ou nom de fichier ne doit être spécifié si le commutateur /HE est utilisé. Le commutateur /NOD oblige LINK à ignorer toutes les bibliothèques par défaut ayant été ajoutées aux modules objet par le compilateur de langage de haut niveau ayant produit les modules, limitant ainsi les recherches aux bibliothèques spécifiées dans la ligne de commande ou le fichier de réponse. Le commutateur /NOI fait que LINK est sensible à la casse lors de la résolution de références externes à des symboles entre des modules objet. Le commutateur /NOI est généralement utilisé avec les fichiers objets créés par des compilateurs de langage de haut niveau qui différencient les lettres majuscules et minuscules.
- La commande MASM et de nombreux compilateurs de langage de programmation de haut niveau n'incluent pas de gestionnaires de recouvrement dans leurs bibliothèques. Les utilisateurs doivent consulter la documentation de leur compilateur pour déterminer si le commutateur /O:n peut être utilisé.
- Les numéros d'interruption étant en conflit avec les interruptions logicielles utilisées pour obtenir les services MS-DOS ou ROM BIOS ou avec les interruptions matérielles affectées aux contrôleurs de périphériques ne doivent pas être utilisés dans le commutateur /O:n.
- Les commutateurs /C:n, /H et /ST:n contrôlent les informations dans l'entête de exe_file affectant le comportement du chargeur système MS-DOS lorsque le fichier est lu à partir du disque dans la RAM pour exécution. Le commutateur /C:n définit le nombre maximum de paragraphes de 16 octets de mémoire à mettre à la disposition du programme lorsqu'il est chargé en mémoire, en plus de la mémoire requise pour contenir le code, les données et les piles du programme; la valeur par défaut est 65535, ce faisant allouer au programme toute la mémoire disponible. Le commutateur /H entraîne le chargement du programme aussi haut que possible dans la zone de programme transitoire (mémoire libre), plutôt que le plus bas possible (valeur par défaut). Le commutateur /ST:n définit la taille de pile (en octets) à allouer pour le programme lorsqu'il est chargé et remplace toutes les déclarations de taille de segment de pile dans le code source d'origine. Le nombre n peut être n'importe quel nombre décimal, octal ou hexadécimal compris entre 1 et 65535; cependant n doit être suffisamment grand pour accueillir toutes les données initialisées dans le segment de pile. Les nombres octaux doivent avoir un zéro non significatif; les nombres hexadécimaux doivent commencer par 0x. Si le commutateur /ST:n n'est pas utilisé, la commande LINK calcule la taille de la pile d'un programme, en basant la taille sur la taille de tous les segments de pile indiqués dans les fichiers objets. Les valeurs /C:n et /ST:n dans l'entête exe_file peuvent être modifiées après la liaison à l'aide de l'utilitaire EXEMOD.
- Si la commande LINK ne parvient pas à conserver dans la RAM toutes les données qu'il traite, il crée un fichier de disque temporaire nommé VM.TMP (mémoire virtuelle) dans le répertoire actuel de l'unité de disque de disque par défaut. Si une disquette se trouve dans l'unité de disque par défaut, la commande LINK émet un message d'avertissement pour empêcher l'utilisateur de changer de disque tant que la session LINK n'est pas terminée. Une fois le traitement de la commande LINK terminé, il supprime le fichier temporaire.
- Avertissement : tout fichier nommé VM.TMP se trouvant déjà sur le disque sera détruit si la commande LINK crée le fichier de disque temporaire.
- La commande LINK retourne les codes de retour suivant :
LINK TEST,,TEST,A:\ALTLIB\MATH.LIB+COMMON+B:+D:\LIB\Enter |
Valeur | Description |
---|---|
0 | Aucune erreur ou référence non résolue n'a été rencontrée lors de la création de exe_file. |
1 | Une erreur LINK diverse s'est produite qui n'a pas été couverte par les autres codes de retour. |
16 | Un enregistrement de données était trop volumineux pour être traité. |
32 | Aucun fichier objet n'a été spécifié dans la ligne de commande ou le fichier de réponses. |
33 | Le fichier de carte n'a pas pu être créé. |
66 | Une zone COMMON a été déclarée supérieure à 65535 (un segment). |
96 | Trop de bibliothèques ont été spécifiées. |
144 | Un module objet non valide (obj_file) a été détecté. |
145 | Trop de TYPDEF ont été trouvés dans les modules objet spécifiés. |
146 | Trop de noms de groupes, de segments ou de classes ont été trouvés dans un module objet. |
147 | Trop de segments ont été trouvés dans tous les modules objet combinés, ou trop de segments ont été trouvés dans un module objet. |
148 | Trop de superpositions ont été spécifiées. |
149 | La taille d'un segment dépassait 65535. |
150 | Trop de groupes ou de GRPDEF ont été trouvés dans un module objet. |
151 | Trop de symboles externes ont été trouvés dans un module objet. |
177 | La taille d'un groupe dépassait 65535. |
Liste des messages
Message | Description |
---|---|
filename is not a valid library | Le fichier spécifié comme bibliothèque de module objet est corrompu ou n'est pas une bibliothèque au format créé par l'utilitaire LIB de Microsoft. |
About to generate .EXE file | Changez la disquette dans l'unité de disque X et appuyez sur Enter. Le commutateur /P a été utilisé dans la ligne de commande. La commande LINK invite l'utilisateur à changer de disque avant que LINK ne crée le fichier contenant le programme exécutable. |
Ambiguous switch error: "option" | Un commutateur valide n'a pas été entré après une barre oblique (/) dans la ligne de commande. |
Array element size mismatch | Un tableau commun FAR a été déclaré avec au moins deux tailles d'élément de tableau différentes (par exemple, une fois en tant que tableau de caractères et une fois en tant que tableau de nombres réels). Cette erreur se produit uniquement avec les programmes produits par le compilateur Microsoft C ou d'autres compilateurs prenant en charge les tableaux communaux FAR; cela ne se produit pas avec les fichiers objets produits par MASM. |
Attempt to access data outside segment bounds | Un enregistrement de données dans un module objet spécifiait des données s'étendant au-delà de la fin d'un segment. Il s'agit d'une erreur de conversion. Notez quel compilateur ou assembleur a produit le module objet non valide et informez Microsoft Corporation. |
Attempt to put segment name in more than one group in file filename | Un segment a été déclaré membre de deux groupes. Corrigez le code source et recréez les modules objet. |
Bad value for cparMaxAlloc | La valeur spécifiée à l'aide de l'option /C:n n'est pas comprise entre 1 et 65535. |
Cannot create temporary file | Le disque de destination n'a pas suffisamment d'espace pour le fichier temporaire ou le répertoire racine est plein. |
Cannot find file filename | Changez de disquette et appuyez sur Enter. Le fichier objet spécifié est introuvable dans l'unité de disque actuel. |
Cannot find library: filename | Entrez une nouvelle spécification de fichier : le fichier de bibliothèque spécifié est introuvable ou n'existe pas. Entrez la lettre de l'unité de disque correcte, vérifiez l'orthographe du nom de fichier et du chemin, ou assurez-vous que la variable d'environnement LIB a été correctement configurée. |
Cannot nest response files | Un fichier de réponses a été nommé dans un fichier de réponses. Révisez le fichier de réponses pour éliminer le fichier imbriqué. |
Cannot open list file | Le disque de destination n'a pas suffisamment d'espace pour la liste ou le répertoire racine est plein. |
Cannot open response file: filename | LINK ne trouve pas le fichier de réponses spécifié. |
Cannot open run file | Le disque de destination n'a pas suffisamment d'espace pour le fichier .EXE ou le répertoire racine est plein. |
Cannot open temporary file | Le disque de destination n'a pas suffisamment d'espace pour le fichier temporaire ou le répertoire racine est plein. |
Cannot reopen list file | Le disque d'origine n'a pas été remplacé à la demande. Redémarrez LINK. |
Common area longer than 65536 bytes | Le programme a plus de 64 Ko de variables communes. Cette erreur se produit uniquement avec les programmes produits par le compilateur Microsoft C ou d'autres compilateurs prenant en charge les variables communes. |
Data record too large | Un enregistrement LEDATA (dans un module objet) contient plus de 1024 octets de données. Il s'agit d'un symptôme d'une erreur dans le compilateur utilisé pour générer le module objet. |
Dup record too large | Un enregistrement LIDATA (dans un module objet) contient plus de 512 octets de données. Cette erreur peut être causée par une définition de structure complexe ou par une série d'opérateurs DUP profondément imbriqués. |
File not suitable for /EXEPACK, relink without | Le fichier lié au commutateur /E aurait été plus petit s'il n'avait pas été compressé. Reliez sans le commutateur /E. |
Fixup overflow near number in segment name in filename offset number | Un groupe est supérieur à 64 Ko, le fichier source d'origine contient un saut court intersegment ou un appel court intersegment, le nom d'un élément de données est en conflit avec celui d'un sous-programme de bibliothèque ou une déclaration EXTRN est placée dans le mauvais segment. |
Incorrect DOS version, use DOS 2.0 or later | La commande LINK utilise les appels de gestion de fichiers étendus pour fournir la prise en charge de chemin d'accès et, par conséquent, ne fonctionne pas avec les versions de MS-DOS antérieures à 2.0. |
Insufficient stack space | La mémoire disponible est insuffisante pour exécuter la commande LINK. |
Interrupt number exceeds 255 | Le nombre spécifié dans le commutateur /O:n n'est pas compris entre 0 et 255. |
Invalid numeric switch specification | Une valeur incorrecte a été saisie avec l'une des options LINK. |
Invalid object module | L'un des modules objet n'est pas valide. Recompilez le fichier source. |
NEAR/HUGE conflict | Des définitions contradictoires NEAR et HUGE ont été données pour une variable commune. Cette erreur se produit uniquement avec les programmes produits par le compilateur Microsoft C ou d'autres compilateurs prenant en charge les variables communes. |
Nested left parentheses | Une parenthèse ouvrante (à gauche) est nécessaire sur le côté gauche d'un module de recouvrement. |
Nested right parentheses | Une parenthèse fermante (à droite) est nécessaire sur le côté droit d'un module de recouvrement. |
No object modules specified | Aucun nom de fichier objet n'a été spécifié dans la ligne de commande ou le fichier de réponses. |
Object not found | L'un des fichiers objets spécifiés dans la ligne de commande est introuvable. |
Out of space on list file | Le disque de destination n'a pas suffisamment d'espace pour la liste. |
Out of space on run file | Le disque de destination n'a pas suffisamment d'espace pour le fichier .exe. |
Out of space on scratch file | L'unité de disque du disque par défaut n'a pas suffisamment d'espace pour les fichiers temporaires. |
Overlay manager symbol already defined: name | Un nom de symbole a été défini entrant en conflit avec l'un des noms spéciaux du gestionnaire de recouvrement. Utilisez un autre nom de symbole. |
Please replace original diskette | Dans l'unité de disque X et appuyez sur Enter. Le commutateur /P a été spécifié dans la ligne de commande et le disque pour recevoir le fichier .EXE produit par LINK a déjà été inséré. Ce message indique que le fichier .exe a été créé avec succès et que le disque d'origine doit à nouveau être placé dans l'unité de disque. |
Relocation table overflow | Plus de 32768 appels longs, sauts longs ou autres pointeurs longs ont été trouvés dans le programme. Le programme devra peut-être être restructuré pour réduire le nombre de références FAR. Les utilisateurs de Pascal et FORTRAN devraient essayer de désactiver l'option de débogage avant de restructurer le programme. |
Response line too long | Une ligne dans un fichier de réponses contenait plus de 127 caractères. |
Segment limit set too high | Le nombre spécifié dans le commutateur /SE:n n'était pas compris entre 1 et 1024. |
Segment limit too high | Il n'y a pas assez de mémoire disponible pour LINK pour allouer des tables pour décrire le nombre de segments demandés (par défaut = 128 ou le nombre spécifié dans le commutateur /SE:n). Utilisez le commutateur /SE:n pour spécifier un plus petit nombre de segments ou modifiez la configuration du système pour augmenter la quantité de mémoire disponible. |
Segment size exceeds 64K | Le programme est un programme de petit modèle avec plus de 64 Ko de code ou de données, un programme de modèle compact avec plus de 64 Ko de code ou un programme de modèle moyen avec plus de 64 Ko de données. La sélection d'un modèle différent ou la modification du code de programme peut être nécessaire pour terminer avec succès le processus LINK. |
Stack size exceeds 65536 bytes | La taille spécifiée pour la pile dans le commutateur /ST:n était trop grande ou la longueur combinée de plusieurs segments de pile déclarés dépassait 64 Ko. |
Symbol already defined: "symbol" | L'un des symboles de recouvrement spéciaux requis pour la prise en charge de recouvrement a été précédemment défini. |
Symbol defined more than once: "symbol" in file | Un symbole a été défini plusieurs fois dans le module objet. Supprimez la définition de symbole supplémentaire. |
Symbol table overflow | Le programme a plus de 256 Ko d'informations symboliques (public, external, segment, group, class, file,...). Éliminez autant de symboles publics que possible, combinez des modules et/ou des segments et recréez les fichiers objets. |
Terminated by user | Ctrl+C ou Ctrl+Break a été enfoncé, provoquant la fin prématurée de la session LINK. |
Too many external symbols in one module | Un module objet contient plus que la limite de 1023 symboles externes. |
Too many group-, segment-, and class-names in one module | L'un des modules objet du programme contient trop de noms de groupes, de segments et de classes. Le fichier source du module objet peut devoir être divisé ou restructuré. |
Too many groups | Le programme définit plus de 9 groupes (dont DGROUP). Les groupes doivent être combinés ou éliminés. |
Too many GRPDEFs in one module | La commande LINK a rencontré plus de 9 définitions de groupe (GRPDEF) dans un seul module objet. Réduisez le nombre de GRPDEF ou divisez le module objet. |
Too many libraries | Plus de 16 bibliothèques ont été spécifiées. Combinez des bibliothèques ou utilisez des modules objet nécessitant moins de bibliothèques. |
Too many overlays | Le programme définit plus de 63 recouvrements. Réduisez le nombre de recouvrements. |
Too many segments | Le programme a plus que le nombre maximum de segments spécifié par la valeur par défaut de 128 ou avec le commutateur /SE:n. Utilisez le commutateur /SE:n pour spécifier un plus grand nombre de segments. |
Too many segments in one module | Un module objet a plus de 255 segments. Divisez le module ou combinez des segments. |
Too many TYPDEFs | Un module objet contient trop d'enregistrements TYPDEF (ces enregistrements décrivent des variables communes). Cette erreur se produit uniquement avec les programmes produits avec le compilateur Microsoft C ou d'autres compilateurs prenant en charge les variables communes. |
Unexpected end-of-file on library | Ce message peut indiquer que le disque contenant la bibliothèque en cours d'utilisation a été supprimé prématurément. |
Unexpected end-of-file on scratch file | Le disque contenant VM.TMP a été supprimé. |
Unmatched left parenthesis | Une erreur de syntaxe a été détectée dans la spécification d'une structure de recouvrement. |
Unmatched right parenthesis | Une erreur de syntaxe a été détectée dans la spécification d'une structure de recouvrement. |
Unrecognized switch error: "option" | Un caractère non reconnu a été entré après une barre oblique (/) dans la ligne de commande. |
Unresolved COMDEF; Microsoft internal error | Ceci est un sérieux problème d'ordre interne. |
Unresolved externals: list | Un symbole a été déclaré externe (EXTRN) dans un module objet mais n'a pas été déclaré PUBLIC dans le module objet dans lequel il a été défini, ou une spécification de bibliothèque nécessaire a été omise de la ligne de commande ou du fichier de réponses. |
VM.TMP is an illegal file name | VM.TMP a été spécifié comme nom de fichier objet. Si un fichier objet nommé VM.TMP existe, renommez-le. |
Warning: load-high disables exepack | Les commutateurs /H et /E ne peuvent pas être utilisés en même temps. |
Warning: no stack segment | Le programme ne contient aucun segment avec le type de combiné STACK. Ce message peut être ignoré s'il existe une raison spécifique pour ne pas définir une pile (par exemple, si le fichier .EXE sera ultérieurement converti en fichier .COM) ou pour en définir un sans le type de combinaison STACK. |
WARNING: Segment longer than reliable size | Bien que les segments de code puissent atteindre 65 536 octets, les segments de code de plus de 65 500 octets peuvent ne pas être fiables sur le microprocesseur Intel 80286. Réduisez tous les segments de code à 65500 octets ou moins. |
Warning: too many public symbols | Le commutateur /M a été utilisé pour demander une liste triée des symboles publics dans le fichier de cartographie, mais il y a trop de symboles à trier. LINK produira à la place une liste non triée. |
Exemples
L'utilisation la plus simple de la commande LINK consiste à traiter un seul fichier objet pour produire un fichier exécutable, en utilisant toutes les valeurs par défaut. Par exemple, pour traiter le fichier SHELL.OBJ, créez un fichier exécutable nommé SHELL.EXE et recherchez uniquement les bibliothèques par défaut, tapez :
LINK SHELL;Enter |
Le point-virgule après le nom de fichier oblige LINK à utiliser les valeurs par défaut pour tous les autres paramètres. Pour lier trois fichiers objets nommés SHELL.OBJ, VIDEO.OBJ et DOSINT.OBJ dans un fichier exécutable nommé SHELL.EXE et rechercher la bibliothèque DEVLIB.LIB sur l'unité de disque B avant de rechercher les bibliothèques par défaut, tapez :
LINK SHELL+VIDEO+DOSINT,,,B:DEVLIBEnter |
Si la commande LINK est entrée sans paramètres, LINK invite l'utilisateur à fournir les informations nécessaires. Par exemple, la session interactive suivante lie le fichier MENUMGR.OBJ au fichier exécutable MENUMGR.EXE, crée un fichier de cartographie nommé MENUMGR.MAP et recherche la bibliothèque d'émulateur mathématique à virgule flottante EM.LIB avant toute bibliothèque par défaut :
LINKEnter |
on obtiendra un résultat ressemblant à ceci :
Microsoft (R) 8086 Object Linker Version 3.05 Copyright (C) Microsoft Corp 1983,1984,1985. All rights reserved. Object Modules [.OBJ]: MENUMGR Enter Run File [MENUMGR.EXE]: Enter List File [NUL.MAP]: MENUMGR Enter Libraries [.LIB]: EM Enter |