Lieur C++

De RAD Studio
Aller à : navigation, rechercher

Remonter à Construction


Projet > Options > Construction > Lieur C++

Utilisez cette boîte de dialogue pour définir les options du lieur C++.

Options Description

Cible, Appliquer, Enregistrer

Voir Options de la cible.

Eléments communs

Voir Eléments communs des pages Options de projet.


Options de liaison

Options de liaison Description Commutateurs du lieur
ilink32 ilink64 ld (iOS) ld (Android)

Désactiver la liaison incrémentielle

Supprime la génération des fichiers d'état du lieur, en désactivant la liaison incrémentielle. Si vous utilisez l'option Désactiver la liaison incrémentielle, les liaisons ultérieures demanderont autant de temps que la première.
Valeur par défaut = False

-Gn -Gn Plate-forme non prise en charge Plate-forme non prise en charge

Afficher le temps écoulé pendant la liaison

Inclut dans la sortie du lieur le temps nécessaire pour achever la liaison.
Valeur par défaut = False

-t -t Plate-forme non prise en charge Plate-forme non prise en charge

Informations de débogage complètes

Inclut dans le fichier de sortie les informations nécessaires au débogage de votre application avec le débogueur intégré de C++Builder :

Sur la ligne de commande, cette option indique au lieur d'inclure les informations de débogage dans le fichier TDS pour tous les modules d'objets contenant des informations de débogage. Vous pouvez utiliser les options -v+ et -v- pour activer ou désactiver les informations de débogage sélectivement module par module (mais non sur la ligne de commande où vous utilisez -v). Par exemple, la commande suivante inclut les informations de débogage pour les modules mod2 et mod3, mais pas pour les modules mod1 et mod4 :

ILINK32 mod1 -v+ mod2 mod3 -v- mod4

Valeur par défaut = False

Remarque: Pour Windows 64 bits, vous pouvez séparer les informations de débogage en fichiers distincts afin de réduire l'utilisation de la mémoire du lieur. Pour plus d'informations, voir Split DWARF.
-v -v -S -S

Générer un fichier .drc

ILINK32 génère des fichiers .RC (fichiers .drc) compatibles Delphi. Le fichier .drc a le même nom que le fichier exécutable, et est placé dans le même répertoire.
Valeur par défaut = False

-GD -GD Plate-forme non prise en charge Plate-forme non prise en charge

Générer le fichier des symboles .map

Génère un fichier map dans .\OutputFolder\ProjectName.map.
Par défaut, le lieur nomme le fichier map en utilisant le nom de base du programme et l'extension .map.
Valeur par défaut = True Pour les plates-formes de bureau, vous définissez les options du fichier Map sur la page Sortie du lieur C++.

N/A N/A -map (non activé) -Map (non activé)

Générer la bibliothèque d'importation

Génère un fichier de bibliothèque d'importation, une petite bibliothèque statique qui décrit les exportations d'un package ou d'une .dll afin qu'une application puisse s'y lier. Ce fichier est utilisé pour la liaison des bibliothèques dynamiques. Sans une bibliothèque d'importation, vous ne pouvez pas utiliser le package dans C++. L'extension du fichier de bibliothèque d'importation est :

Remarque: Cette option apparaît uniquement pour les projets de bibliothèques de liaison dynamique C++.

Activée seulement pour les packages C++.
Valeur par défaut = True

-Gi -Gi Plate-forme non prise en charge Plate-forme non prise en charge

Générer une bibliothèque de packages statiques (.lib)

Génère une bibliothèque de packages liables statiquement. La construction d'une bibliothèque de packages statiques C++ (.lib) requiert un ensemble de .objs qui sont différents des .objs utilisés pour construire la bibliothèque dynamique (.bpl). Quand cette option est activée (le paramètre par défaut), une commande Construire ou Make produit deux jeux de fichiers .obj :

  • Les .objs pour la bibliothèque dynamique (.bpl) sont construits avec :
    • BCC32 -D_RTLDLL;USEPACKAGES ou :
    • DCC32 -JPHNE (Générer le fichier .obj C++, le fichier .hpp, dans l'espace de nommage, tout exporter)


  • Les .objs pour la bibliothèque statique (.lib) sont construits avec :
    • BCC32 -U_RTLDLL;USEPACKAGES ou :
    • DCC32 -JPHN (Générer le fichier .obj C++, le fichier .hpp, dans l'espace de nommage)
  • Pour les deux types de bibliothèque, le Gestionnaire de bibliothèques TLIB crée la bibliothèque réelle, dans le répertoire \bpilib.

Les fichiers .obj pour la bibliothèque statique (.lib) sont générés dans un sous-répertoire créé dans le répertoire de votre projet, typiquement le répertoire \Debug\Win32\staticobjs. Les fichiers .obj pour la bibliothèque dynamique (.bpl) sont générés dans le répertoire de votre projet. Quand cette option est désactivée, une commande Construire ou Make produit seulement la bibliothèque dynamique (.bpl). Pour de plus amples informations, voir Construction de packages statiques. Activée seulement pour les packages C++.
Valeur par défaut = True

-Gl -Gl Plate-forme non prise en charge Plate-forme non prise en charge

Conserver les fichiers de sortie

Indique au lieur de conserver les fichiers de sortie qui sont normalement supprimés en cas d'erreurs. Le lieur a été modifié pour supprimer son fichier de sortie (EXE/DLL) quand il y a des erreurs au cours de la liaison. Auparavant, ces fichiers n'étaient pas supprimés.
Valeur par défaut = False

-Gk -Gk Plate-forme non prise en charge Plate-forme non prise en charge

Lier avec la RTL dynamique

Contrôle si la RTL C est liée de manière dynamique (ou statique) à la bibliothèque d'exécution (cc3290.dll).
Valeur par défaut = True

N/A N/A N/A N/A

Lier avec la bibliothèque d'exécution Delphi
(package rtl et cp32mt.lib/cp32mti.lib)

Garantit que l'application est liée avec :

  • Le package RTL Delphi (rtl.lib ou rtl.bpi)
  • Les unités memmgr.lib et sysinit.obj
  • La RTL C++ qui est compatible avec la RTL Delphi (c'est-à-dire, cp32*.lib).

C++ est lié à la RTL Delphi si cette option est activée, ou si le projet a une affinité framework. Par exemple, les projets Fiches FMX, en raison de leur affinité framework, sont liés à la RTL Delphi. Utilisez cette option pour toute application C++ n'ayant pas d'affinité framework et dont vous voulez utiliser des types Delphi (tels que UnicodeString, Variant, et ainsi de suite) ou pour accéder à certaines fonctionnalités exposées par les unités du package Delphi RTL (telles que SysUtils, Classes, IOUtils, et ainsi de suite). Les applications console C++ ne peuvent pas gérer les exceptions Delphi sauf si vous activez cette option ou sélectionnez un framework quand vous créez l'application à l'aide de l'expert Nouvelle application console (C++).
Valeur par défaut = False

N/A N/A N/A N/A

Retirer le fichier lieur temporaire .lnk après la liaison

Cette option retire le fichier temporaire du lieur dans .\OutputFolder\ProjectName.lnk.
Valeur par défaut = True

N/A N/A N/A N/A

Spécifier le nombre maximal d'erreurs

Définit le nombre spécifié d'erreurs rencontrées (nn) avant que le lieur ne soit abandonné.
Valeur par défaut = 0

-Enn -Enn Plate-forme non prise en charge Plate-forme non prise en charge

Options avancées

Options avancées Description Commutateurs du lieur
ilink32 ilink64

Autres options

Entrez les options du lieur supplémentaires de votre choix. Pour les options, voir ILINK32.EXE, le lieur incrémentiel 32 bits.

N/A N/A

Liaison sensible à la casse

Le lieur distingue les caractères majuscules et minuscules dans les symboles publics et externes. Normalement, cette option doit être définie, car C et C++ sont tous deux des langages sensibles à la casse.
Valeur par défaut = True

-c -c

Effacer l'état avant la liaison

Supprime les fichiers d'état du lieur incrémentiel existants, puis recrée ces fichiers et poursuit avec le lieur. Cette option vous permet d'actualiser les fichiers d'état.
Valeur par défaut = False

-C -C

Compatible Data Execution Prevention

Spécifie si l'image exécutable est compatible avec Windows Data Execution Prevention.
Valeur par défaut = True

-GE:NXCOMPAT=ON -GE:NXCOMPAT=OFF -GE:NXCOMPAT=ON -GE:NXCOMPAT=OFF

Différer le chargement des DLL

Spécifie les DLL dont le chargement est différé. Le chargement différé de DLL est utile pour les DLL très peu utilisées par une application, mais se traduit par des coûts de démarrage élevés. Les DLL dont le chargement est différé ne sont chargées et initialisées que lorsqu'un point d'entrée de la DLL est réellement appelé. L'utilisateur peut intégrer le support de la RTL pour le chargement différé des DLL afin de gérer les erreurs au chargement et supplanter le système de chargement différé, si cela est souhaité. Voir la description du bouton pop-up Points de suspension dans Eléments communs des pages Options de projet.

-d -d

Effectuer une somme de contrôle de l'image

Calcule la somme de contrôle (checksum) de la cible et place le résultat dans l'en-tête PE de la cible. Cela est utilisé pour les pilotes du mode NT Kernel et les DLL système.
Valeur par défaut = False

-Gz -Gz

Activer les adresses longues

Spécifie si l'objet prend en charge des adresses supérieures à deux giga-octets.
Valeur par défaut = False

-GF:LARGEADDRESSAWARE

TLS rapide

Alloue TLS (Thread-Local Storage) depuis Windows au lieu d'utiliser le mécanisme de partage TLS.
Valeur par défaut = False

-Gt -Gt

Alignement de fichier

Spécifie l'alignement des pages pour le code et les données dans le fichier exécutable. Le lieur utilise la valeur de l'alignement de fichier lorsqu'il écrit dans le fichier les divers objets et sections (code et données). Par exemple, si vous utilisez la valeur par défaut 0x200, le lieur stocke la section de l'image sur des frontières de 512 octets dans le fichier exécutable. Lorsque vous utilisez cette option, vous devez spécifier une valeur d'alignement de fichier qui soit une puissance de 2, la plus petite valeur étant 16. L'ancien style de cette option (/A:dd) est encore pris en charge pour des raisons de compatibilité descendante. Avec cette option, le nombre décimal dd est multiplié par la puissance de 2 pour calculer la valeur de l'alignement de fichier. La version en ligne de commande de cette option (/Afxxxx) accepte des nombres décimaux ou hexadécimaux comme valeur d'alignement de fichier.
Valeur par défaut = 0x200

-Af -Af

Alignement des objets

Le lieur utilise la valeur d'alignement des objets pour déterminer les adresses virtuelles des différents objets et sections (comme le code et les données) dans votre application. Par exemple, si vous spécifiez une valeur d'alignement des objets de 8192, le lieur aligne les adresses virtuelles des sections dans l'image sur les frontières 8192 octets (0x2000). Lors de l'utilisation de cette option, vous devez spécifier une valeur d'alignement des objets qui soit une puissance de 2, la plus petite valeur étant 4096 (0x1000) (valeur par défaut). La version en ligne de commande de cette option (/Ao) accepte des nombres décimaux ou hexadécimaux comme valeur d'alignement d'objet.
Valeur par défaut = 0x1000

-Ao -Ao

Remplacer les ressources

Ajoute et/ou remplace des ressources sans éliminer les ressources existantes.
Valeur par défaut = False

-Rr -Rr

Supporter la randomisation du format d'espace d'adresse (ASLR)

Spécifie si la DLL ou l'image exécutable peut subir une randomisation aléatoire au moment du chargement en utilisant l'ASLR (randomisation du format d'espace d'adresse).
Valeur par défaut = True

-GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF -GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF

Supporter la randomisation du format d'espace d'adresse 64 bits d'entropie élevée (ASLR 64 bits)

Spécifie si la DLL ou l'image exécutable prend en charge la randomisation du format d'espace d'adresse (ASLR) 64 bits d'entropie élevée.
Par défaut = True

Remarque: Cet indicateur est uniquement disponible dans Win64.
-GE:HIGHENTROPYVA=ON -GE:HIGHENTROPYVA=OFF

Terminal Server

Spécifie si l'app est conçue pour être exécutée dans un environnement multi-utilisateur.
Valeur par défaut = True

-GE:TSAWARE=ON -GE:TSAWARE=OFF -GE:TSAWARE=ON -GE:TSAWARE=OFF

Liaison commentée

Définit l'option de commentaire RLINK32 et des informations détaillées sont émises au cours de la liaison des ressources.
Valeur par défaut = False

-r -r

Bibliothèques liées supplémentaires

Bibliothèques supplémentaires Description Commutateurs du lieur
ilink32 ilink64 ld (iOS) ld (Android)

Autres options Bibliothèques liées en supplément

Lie votre application en fonction de la liste de bibliothèques spécifiée. Spécifiez les bibliothèques par leur nom de code. Par exemple, pour réaliser un lien avec MIDAS, ajoutez "midas" à la liste.

Remarque: D'autres options avancées vous permettent de réaliser un lien vers des bibliothèques populaires telles qu'Interbase. Utilisez ces autres options à la place de Bibliothèques liées en supplément chaque fois que possible.
Plate-forme non prise en charge Plate-forme non prise en charge -l -l

Lier avec DBX InterBase

Réalise un lien avec la bibliothèque client dbExpress InterBase.
Valeur par défaut = True

Plate-forme non prise en charge Plate-forme non prise en charge -lsqlib -lsqlib

Lier avec Indy

Réalise un lien avec les bibliothèques Indy.
Valeur par défaut = True

Plate-forme non prise en charge Plate-forme non prise en charge -lIndyCore -lIndyProtocols -lIndySystem -lIndyCore -lIndyProtocols -lIndySystem

Lier avec Interbase ToGo

Réalise un lien avec la bibliothèque client dbExpress InterBase ToGo.
Valeur par défaut = True

Plate-forme non prise en charge Plate-forme non prise en charge -libtogo -libtogo

Lier avec Midas

Réalise un lien avec MIDAS, la bibliothèque DataSnap.
Valeur par défaut = True

Plate-forme non prise en charge Plate-forme non prise en charge -lmidas -lmidas

Lier avec des expressions régulières.
Valeur par défaut = True

Réalise un lien avec la bibliothèque d'expressions régulières, la bibliothèque PCRE (expressions régulières compatibles Perl) adaptée à C++.
Pour de plus amples informations, voir http://www.pcre.org.
Valeur par défaut = True

Plate-forme non prise en charge Plate-forme non prise en charge -lpcre Plate-forme non prise en charge

Lier avec SQLite

Réalise un lien avec la bibliothèque client dbExpress SQLite.
Valeur par défaut = True

Plate-forme non prise en charge Plate-forme non prise en charge -lsqlite3 -lsqlite

Lier avec SSL et Crypto

Réalise un lien avec les bibliothèques OpenSSL. Voir par exemple Création d'une app iOS, prise en charge OpenSSL.
Valeur par défaut = False

Plate-forme non prise en charge Plate-forme non prise en charge -lssl -lcrypto Plate-forme non prise en charge

Lier avec ZLib

Réalise un lien avec la bibliothèque de compression ZLib.
Pour de plus amples informations, voir http://www.zlib.net.
Valeur par défaut = True

Plate-forme non prise en charge Plate-forme non prise en charge -lz -lz

Version iOS minimale supportée.

Définit la version iOS minimale prise en charge par votre application. Voir Prérequis de plate-forme FireMonkey, Exigences iOS.
Valeur par défaut = 8.0

Plate-forme non prise en charge Plate-forme non prise en charge -iphoneos_version_min N/A

Symboles censés être exportés par le runtime

Liste des symboles qui doivent être exportés, car ils sont nécessaires à l'exécution.

Plate-forme non prise en charge Plate-forme non prise en charge -exported_symbol Plate-forme non prise en charge

Paramètres de tas du lieur

WIN64

Paramètres de tas du lieur Description Indicateur de la ligne de commande

Taille du tas du code

Tas pour les sections code

-GHcode=0xnnnn

Taille du tas des données

Tas pour les sections data

-GHdata=0xnnnn

Taille du tas Abbrev Dwarf

Tas pour les codes d'abréviations

-GHdwarf_abbrev=0xnnnn

Taille du tas Aranges Dwarf

Tas pour les entrées de plages d'adresses

-GHdwarf_aranges=0xnnnn

Taille du tas Info Dwarf

Tas pour les modules et les types de symboles triviaux

-GHdwarf_info=0xnnnn

Taille du tas Line Dwarf

Tas pour les informations sur les numéros de ligne

-GHdwarf_line=0xnnnn

Taille du tas Loc Dwarf

Tas pour les descriptions d'emplacement

-GHdwarf_loc=0xnnnn

Taille du tas Macinfo Dwarf

Tas pour les informations sur les macros

-GHdwarf_macinfo=0xnnnn

Taille du tas Pubtypes Dwarf

Tas pour les types de symboles publics

-GHdwarf_pubtypes=0xnnnn

Taille du tas Ranges Dwarf

Tas pour les plages d'adresses

-GHdwarf_ranges=0xnnnn

Taille du tas Str Dwarf

Tas pour les chaînes Dwarf

-GHdwarf_str=0xnnnn

WIN32

Paramètres de tas du lieur Description Indicateur de la ligne de commande

Taille du tas Info

Tas pour les structures de données du lieur

-GHinfo

Taille du tas du code

Tas pour le code

-GHcode

Taille du tas des données

Tas pour les données

-GHdata

Taille du tas des données RO

Tas pour les données en lecture seule

-GHrodata

Taille du tas des données non initialisées

Tas pour les données non initialisées

-GHbss

Taille du tas TDS

Tas pour les symboles Turbo Débogueur

-GHtds

Pages enfant

Voir aussi