Utilisation de LLD à partir de la ligne de commande

De RAD Studio

Remonter à Utilitaires de ligne de commande - Index

La chaîne d'outils Windows 64 bits Moderne (bcc64x) utilise le lieur lld de LLVM. Pour référence, consultez la documentation lld officielle.

lld est normalement invoqué par les scripts MSBuild. Pour invoquer lld manuellement, vous devez prendre en compte les considérations suivantes.

Liaison RTL

Les fichiers objets `crt2.o` et `crtbegin.o` de code de démarrage doivent être les premiers objets mentionnés dans la liste et `crtend.o` doit être le dernier.

Lorsque vous construisez pour Delphi (dans le cas d'une application VCL ou FMX standard par exemple), ajoutez `sysinit.o` et les bibliothèques Delphi associées comme rtl.lib et rtle.lib.

Liaison de RTL statiques vs Liaison de RTL dynamiques

Par défaut, la nouvelle chaîne d'outils utilise la liaison dynamique alors que Embarcadero utilisait par défaut la liaison statique.

RAD Studio doit assurer la compatibilité avec les comportements C++Builder traditionnels, qui sont les comportements par défaut pour nos chaînes d'outils, et avec mingw-llvm, qui est important pour les bibliothèques qui le prennent en charge et détectent notre chaîne d'outils comme compatible avec celui-ci.

Notez que pour les cibles de type Borland, la liaison statique est effectuée par défaut. Utilisez les indicateurs suivants pour spécifier votre cible :

  • -tC – Console App
  • -tW – GUI App
  • -tD – DLL
  • -tP – Package

Toutefois, vous pouvez activer la liaison de RTL dynamiques pour l'une de ces cibles en utilisant l'indicateur -tR. Si aucune de ces cibles n'est spécifiée, la liaison dynamique est utilisée par défaut.

Cette approche reproduit le comportement de mingw-llvm pour C++Builder classique et permet de revenir au comportement traditionnel de la chaîne d'outils C++Builder lorsque vous utilisez les cibles indiquées ci-dessus, comme c'est le cas pour la construction d'applications VCL.

Liaison de bibliothèques

Ajoutez des bibliothèques en utilisant l'indicateur `-l:[library]`. Notez la présence du deux-points entre le L minuscule et le nom de la bibliothèque. Utilisez `-lname` pour ajouter une bibliothèque `libname.a` avec l'extension `.a` et utilisez `-l:name.ext` pour des noms spécifiés explicitement comme `-l:rtle.lib`.

Par exemple, `-l:ucrt` établit la liaison avec la bibliothèque UCRT `libucrt.a` et `-l:rtle.lib` avec rtle.lib.

Remarque: Les bibliothèques non-MinGW peuvent ne pas être préfixées par `lib` et utiliser une extension `.lib`. Par exemple, `rtle.lib` ou `import64.lib'.

Options de ligne de commande pour LLD

Le lieur ld.lld prend en charge les options de ligne de commande répertoriées dans le tableau suivant :

Options du lieur

Option Description
--package-usage=<designtime|runtime> Utilisez --package-usage=runtime pour générer un package réservé à l'exécution. Utilisez --package-usage=designtime pour générer un package réservé à la conception.
Remarque: Par défaut, le lieur génère un package utilisable aussi bien à la conception qu'à l'exécution.
--package-desc=<description> Utilisez --package-desc=My kool package pour fournir une description du package.
Remarque: La fonction GetPackageDescription permet de récupérer la description d'un package.


Voir aussi