ILINK64.EXE, le lieur incrémentiel 64 bits
Remonter à Utilitaires de ligne de commande - Index
ILINK64.EXE est l'interface en ligne de commande de ILINK64, le lieur C++ pour Windows 64 bits.
Sommaire
Syntaxe de la ligne de commande
ILINK64 <objfiles>, <exefile>, <mapfile>, <libfiles>, <deffile>, <resfiles>
Eléments de la ligne de commande
Le lieur 64 bits peut également utiliser un fichier de configuration nommé ILINK64.CFG contenant les options que vous devriez généralement taper sur la ligne de commande.
Elément | Description |
---|---|
|
Options du lieur qui contrôlent le fonctionnement du lieur. Ces options indiquent, par exemple, s'il faut produire un fichier .EXE ou .DLL. Elles doivent être précédées d'une barre oblique ( |
|
Un module d'initialisation pour fichiers exécutables ou DLL, qui s'occupe du classement des divers segments du programme. Si le module d'initialisation n'est pas correctement lié, vous obtiendrez une longue liste de messages d'erreur vous indiquant que certains identificateurs n'ont pas été résolus ou qu'aucune pile n'a été créée. |
|
Les fichiers objet (fichiers |
|
Le nom à donner au fichier exécutable (.EXE ou .DLL). Si vous ne spécifiez pas de nom de fichier exécutable, ILINK64 crée le nom de l'exécutable en ajoutant .EXE ou .DLL au nom du premier fichier objet énuméré. (Le lieur assume ou ajoute l'extension .EXE pour les fichiers exécutables si aucune extension n'est présente. Il ajoute également l'extension .DLL pour les bibliothèques de liaison dynamique si aucune extension n'est présente.) |
|
Le nom à donner au fichier map. Si vous ne spécifiez pas de nom, le nom du fichier map est le même que le fichier .EXE (mais avec l'extension .MAP). (Le lieur ajoute l'extension .MAP si vous ne spécifiez pas d'extension.) |
|
Les fichiers bibliothèque (fichiers
|
|
Le fichier de définition de module pour un exécutable Windows. Si vous ne spécifiez pas un fichier de définition de module (.DEF) alors que vous avez utilisé l'option |
|
Une liste de fichiers .RES (fichiers ressource compilés) à lier à l'exécutable. (Le lieur ajoute une extension .RES si aucune extension n'est présente.) |
Aide de la ligne de commande
Pour afficher l'aide de la ligne de commande de ILINK64, entrez :
ilink64
L'écran suivant apparaît :
Turbo Incremental Link 6.40 Copyright (c) 1997-2012 Embarcadero Technologies, Inc. Syntax: ILINK objfiles, exefile, mapfile, libfiles, deffile, resfiles @xxxx indicates use response file xxxx General Options: -Af:nnnn Specify file alignment -C Clear state before linking -Ao:nnnn Specify object alignment -wxxx Warning control -ax Specify application type -Enn Max number of errors -b:xxxx Specify image base addr -r Verbose linking -Txx Specify output file type -q Suppress banner -H:xxxx Specify heap reserve size -c Case sensitive linking -Hc:xxxx Specify heap commit size -v Full debug information -S:xxxx Specify stack reserve size -Gn No state files -Sc:xxxx Specify stack commit size -Gi Generate import library -Vd.d Specify Windows version -GD Generate .DRC file -Dstring Set image description Map File Control: -Vd.d Specify subsystem version -M Map with mangled names -Ud.d Specify image user version -m Map file with publics -GC Specify image comment str -s Detailed segment map -GF Set image flags -x No map -Gl Static package Paths: -Gpd Design time only package -I Intermediate output dir -Gpr Runtime only package -L Specify library search paths -GS Set section flags -j Specify object search paths -Gt Fast TLS Image Control: -Gz Do image checksum -d Delay load a .DLL -Rr Replace resources
Options de la ligne de commande
Les options de la ligne de commande de ILINK64.EXE sont sensibles à la casse.
ILINK64.EXE prend en charge les options de ligne de commande listées dans le tableau suivant :
Remarque : Les options de la ligne de commande
ilink64
peuvent également être écrites en étant précédées d'un-
, au lieu d'un/
(par exemple, l'option/Tpe
peut aussi s'écrire-Tpe
).
Options du lieur
Option | Description |
---|---|
|
Utilise le fichier de réponse |
|
Spécifie l'alignement de fichier ; donnez une valeur hexadécimale ou décimale à |
|
Spécifie l'alignement d'objet ; donnez une valeur hexadécimale ou décimale à |
|
Construit une application Windows 64 bits. |
|
Construit un pilote de périphérique Windows 64 bits. |
|
Construit une application console Windows 64 bits. |
|
Spécifie l'adresse de base de l'image et retire la table de relogement. |
|
Spécifie l'adresse de base de l'image et préserve la table de relogement des DLL. Les objets successifs sont alignés sur les frontières d'adresse de 64K linéaires. Améliore les temps de chargement et les performances à l'exécution.
Recommandé pour la production des DLL. |
|
Actualise les fichiers d'état du lieur. Efface tous les fichiers d'état du lieur avant chaque liaison, puis recrée les fichiers et poursuit la liaison. |
|
Considère comme significative la casse dans les symboles publics et externes. |
|
Chargements différés d'une DLL. La DLL spécifiée n'est chargée ou initialisée que lorsqu'un point d'entrée de la DLL est appelé. |
|
Enregistre dans l'image PE la description spécifiée. |
|
Spécifie le nombre maximal d'erreurs. |
|
Insère une chaîne de commentaire dans l'image directement après la table objet dans l'en-tête de fichier PE. Vous pouvez spécifier plusieurs chaînes. |
|
Génère un fichier .RC compatible Delphi (fichier DRC). |
|
Définit les indicateurs d'image. Les indicateurs xxxx sont :
|
|
Conserve les fichiers de sortie en cas d'erreur. |
|
Génère un fichier .LIB. |
|
Génère un package de conception uniquement. Valeur par défaut : le package fonctionne à la fois à la conception et à l'exécution. |
|
Génère un package d'exécution uniquement. Valeur par défaut : le package fonctionne à la fois à la conception et à l'exécution. |
|
Ne génère pas de fichiers d'état (désactive la liaison incrémentielle). Les liens ultérieurs prendront autant de temps que le premier. Par défaut, cette option est désactivée. |
|
Définit les indicateurs de section. Ajoute les indicateurs spécifiés aux indicateurs existants d'une section donnée, mais ne peut pas retirer les indicateurs par défaut d'une section. Indicateurs de section : Exemple -Gs:.rsrc=W Ce commutateur rend l'écriture possible dans la section RSRC. |
|
Calcule la somme de contrôle (checksum) de la cible et insère le résultat dans l'en-tête PE. Utilisé pour les pilotes du mode NT Kernel et les DLL système. |
|
Spécifie la taille du tas réservé pour l'application, en hexadécimal ou en décimal. La valeur minimale est 0. Ce commutateur redéfinit le paramètre HEAPSIZE dans un fichier de définition de module. |
|
Spécifie la taille de validation du tas pour l'application. |
|
Spécifie le répertoire des fichiers de sortie intermédiaire. Dirige les fichiers d'état du lieur, mais le fichier de débogage map et les fichiers des symboles de débogage sont enregistrés dans le même répertoire que l'image de sortie, à moins qu'une autre spécification ne soit spécifiée pour le fichier de débogage map. |
|
Indique les chemins de recherche des objets. Exemple ILINK64 /jc:\myobjs;.\objs splash ^ .\common\logo,,,utils logolib Cette commande indique au lieur de rechercher SPLASH.OBJ d'abord dans le répertoire en cours. S'il n'est pas trouvé, le lieur le recherche ensuite dans le répertoire C:\MYOBJS, puis dans le répertoire .\OBJs. Cependant, le lieur n'utilise pas les chemins de recherche des objets pour trouver le fichier LOGO.OBJ car le chemin d'accès à ce fichier a été donné explicitement. |
|
Spécifie le chemin de recherche des bibliothèques si aucun chemin explicite n'a été donné pour le fichier LIB et si le lieur ne peut trouver le fichier LIB dans le répertoire en cours. ILINK64 /Lc:\mylibs;.\libs splash ^ .\common\logo,,,utils logolib Indique au lieur de rechercher SPLASH.LIB d'abord dans le répertoire en cours. S'il n'est pas trouvé, le lieur le recherche ensuite dans le répertoire C:\MYLIBS, puis dans le répertoire .\LIBs. Cependant, le lieur n'utilise pas les chemins de recherche des bibliothèques pour trouver le fichier LOGO.LIB car un chemin d'accès à ce fichier a été donné explicitement. |
|
Inscrit dans le fichier map les identificateurs C++ substantypés, et pas le nom complet. |
|
La liste des segments contient une ligne par segment montrant l'adresse de début, la longueur, le nom et la classe du segment. Les symboles publics sont présentés en deux listes, la première liste suit l'ordre alphabétique, la seconde l'ordre croissant des adresses. Les symboles ayant une adresse absolue sont repérés par |
|
Supprime la bannière de la ligne de commande. |
|
Liaison commentée. Par défaut, cette option est désactivée. |
|
Remplace les ressources. |
|
Spécifie la taille de réservation de la pile pour l'application. |
|
Spécifie la taille de validation de la pile pour l'application. |
|
Produit un fichier map détaillé des segments en ajoutant des détails tels que les informations de groupes et de modules dans le fichier map par défaut produit par le lieur. |
|
Cible un fichier DLL Windows 64 bits. |
|
Cible un fichier EXE Windows 64 bits. |
|
Génère un package. |
|
Affiche le temps écoulé pendant la liaison. |
|
Génère un fichier des symboles de débogage. |
|
Active tous les avertissements. |
|
Désactive l'avertissement : |
|
Désactive l'avertissement : |
|
Désactive l'avertissement : |
|
Active l'avertissement : |
|
Désactive l'avertissement : |
|
Active l'avertissement : |
|
Désactive l'avertissement : |
|
Désactive l'avertissement : |
|
Désactive l'avertissement : |
|
Supprime la création d'un fichier de débogage map. |
|
Fichier map par défaut des segments (sans commutateur de lieur). Par défaut, le lieur génère un fichier map contenant des informations générales sur les segments, notamment :
|
Gestion des erreurs de mémoire insuffisante dans ILINK64
L'EDI affiche simplement le message Erreur fatale : Mémoire insuffisante, mais ILINK64 émet des informations supplémentaires concernant chaque tas et la quantité de mémoire utilisée.
Par exemple :
Turbo Incremental Link64 6.40 Copyright (c) 1997-2012 Embarcadero Technologies,
Inc.
Overrun on linker heap: info
Linker Heaps
------------
info 0x12271000 0x12000000
code 0x0487d000 0x08000000
rodata 0x00159000 0x06000000
data 0x029bb000 0x08000000
bss 0x08000000 0x08000000
dwarf_aranges 0x00010000 0x00200000
dwarf_macinfo 0x00010000 0x00200000
dwarf_pubtypes 0x00275000 0x02000000
dwarf_info 0x04e57000 0x06000000
dwarf_abbrev 0x00040000 0x00200000
dwarf_line 0x0124d000 0x02000000
dwarf_str 0x036e0000 0x06000000
dwarf_loc 0x00070000 0x02000000
dwarf_ranges 0x00275000 0x02000000
Fatal: Out of memory
Vous pouvez utiliser le -GH<heapname>=size
pour allouer des tas ou un tas plus grand.
Par exemple, pour lier la version de release de la bibliothèque OWLNext (DLL OWLNext library (EN)), les développeurs C++Builder utilisent -GHinfo=0x12000000
.