Utilisation de LLD à partir de la ligne de commande
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.
`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.
|