Linking

Dans un projet C++, l’étape de liaison est effectuée après la compilation du code source dans les fichiers objet (*.obj). L’éditeur de liens (link.exe) combine les fichiers objet dans un fichier exécutable unique.

Les options de l’éditeur de liens peuvent être définies à l’intérieur ou en dehors de Visual Studio. Dans Visual Studio, vous accédez aux options de l’éditeur de liens en cliquant avec le bouton droit sur un nœud de projet dans Explorateur de solutions et en choisissant Propriétés pour afficher les pages de propriétés. Choisissez Éditeur de liens dans le volet gauche pour développer le nœud et afficher toutes les options.

Syntaxe de ligne de commande de l’éditeur de liens

Lorsque vous exécutez l’éditeur de liens en dehors de Visual Studio, vous pouvez spécifier l’entrée d’une ou plusieurs façons :

  • Sur la ligne de commande
  • Utilisation de fichiers de commande
  • Dans les variables d’environnement

L’éditeur de liens traite d’abord les options spécifiées dans la LINK variable d’environnement, puis les options dans l’ordre dans lequel ils sont spécifiés sur la ligne de commande et dans les fichiers de commande. Si une option est répétée avec des arguments différents, la dernière traitée est prioritaire.

Les options s’appliquent à l’ensemble de la build ; aucune option ne peut être appliquée à des fichiers d’entrée spécifiques.

Pour exécuter link.exe, utilisez la syntaxe de commande suivante :

link arguments

Les arguments options et les noms de fichiers include peuvent être spécifiés dans n’importe quel ordre. Les options sont traitées en premier, puis les fichiers. Utilisez un ou plusieurs espaces ou onglets pour séparer les arguments.

Remarque

Vous pouvez démarrer cet outil uniquement à partir de l’invite de commandes Visual Studio. Vous ne pouvez pas le démarrer à partir d’une invite de commandes système ou à partir de Explorateur de fichiers.

Ligne de commande

Sur la ligne de commande, une option se compose d’un spécificateur d’option, d’un tiret (-) ou d’une barre oblique (/), suivie du nom de l’option. Les noms d’options ne peuvent pas être abrégés. Certaines options prennent un argument, spécifié après un signe deux-points (:). Aucun espace ou onglet n’est autorisé dans une spécification d’option, sauf dans une chaîne entre guillemets dans l’option /COMMENT . Spécifiez des arguments numériques en notation de langage C ou décimal. Les noms d’options et leurs arguments de mot clé ou de nom de fichier ne respectent pas la casse, mais les identificateurs en tant qu’arguments respectent la casse.

Pour transmettre un fichier à l’éditeur de liens, spécifiez le nom de fichier sur la ligne de commande après la link.exe commande. Vous pouvez spécifier un chemin absolu ou relatif avec le nom de fichier, et vous pouvez utiliser des caractères génériques carte dans le nom de fichier. Si vous omettez l’extension point (.) et nom de fichier, l’éditeur de liens suppose une extension de .obj recherche du fichier. L’éditeur de liens n’utilise pas d’extensions de nom de fichier ou le manque d’entre eux pour faire des hypothèses sur le contenu des fichiers. Il détermine le type de fichier en l’examinant et le traite en conséquence.

L’éditeur de liens retourne zéro pour la réussite (aucune erreur). Sinon, elle retourne le numéro d’erreur qui a arrêté le lien. Par exemple, si l’éditeur de liens génère LNK1104, l’éditeur de liens retourne 1104. En conséquence, le numéro d’erreur le plus bas retourné par l’éditeur de liens est 1 000. Une valeur de retour de 128 représente un problème de configuration avec le système d’exploitation ou un fichier .config ; le chargeur n’a pas chargé ni link.exec2.dll.

Fichiers de commande éditeur de liens

Vous pouvez passer des arguments de ligne de commande au link.exe format d’un fichier de commandes. Pour spécifier un fichier de commandes à l’éditeur de liens, utilisez la syntaxe suivante :

link @commandfile

Il commandfile s’agit du nom d’un fichier texte. Aucun espace ou onglet n’est autorisé entre le signe (@) et le nom de fichier. Il n’y a pas d’extension par défaut ; vous devez spécifier le nom de fichier complet, y compris toute extension. Les carte sauvages ne peuvent pas être utilisées. Vous pouvez spécifier un chemin absolu ou relatif avec le nom de fichier. L’éditeur de liens n’utilise pas de variable d’environnement pour rechercher le fichier.

Dans le fichier de commandes, les arguments sont séparés par des espaces ou des onglets (comme sur la ligne de commande) et par des caractères de nouvelle ligne.

Vous pouvez spécifier tout ou partie de la ligne de commande dans un fichier de commandes. Vous pouvez utiliser plusieurs fichiers de commandes dans une link.exe commande. L’éditeur de liens accepte l’entrée du fichier de commande comme si elle était spécifiée à cet emplacement sur la ligne de commande. Les fichiers de commande ne peuvent pas être imbriqués. L’éditeur de liens renvoie le contenu des fichiers de commande, sauf indication /NOLOGO contraire.

Exemple

La commande suivante génère une DLL. Il transmet les noms des fichiers et bibliothèques d’objets dans des fichiers de commande distincts et utilise un troisième fichier de commande pour la spécification de l’option /EXPORTS :

link /dll @objlist.txt @liblist.txt @exports.txt

L’éditeur de liens reconnaît les variables d’environnement suivantes :

  • LINK et _LINK_, s’il est défini. L’éditeur de liens ajoute les options et arguments définis dans la LINK variable d’environnement et ajoute les options et arguments définis dans la _LINK_ variable d’environnement aux arguments de ligne de commande avant le traitement.
  • LIB, si elle est définie. L’éditeur de liens utilise le LIB chemin d’accès lorsqu’il recherche un objet, une bibliothèque ou un autre fichier spécifié sur la ligne de commande ou par l’option /BASE . Il utilise également le LIB chemin d’accès pour rechercher un .pdb fichier nommé dans un objet. La LIB variable peut contenir une ou plusieurs spécifications de chemin d’accès, séparées par des points-virgules. Un chemin doit pointer vers le \lib sous-répertoire de votre installation Visual C++.
  • PATH, si l’outil doit s’exécuter CVTRES et ne trouve pas le fichier dans le même répertoire que link.exe lui-même. (link.exe nécessite CVTRES de lier un .res fichier.) PATH doit pointer vers le \bin sous-répertoire de votre installation Visual C++.
  • TMP, pour spécifier un répertoire lors de la liaison d’OMF ou .res de fichiers.

Voir aussi

Référence à la génération C/C++
Options de l’éditeur de liens MSVC
Fichiers de définition de module (.def)
Prise en charge de l’éditeur de liens pour les DLL à chargement différé