Prise en charge de Clang/LLVM dans les projets Visual Studio
La prise en charge de Clang/LLVM pour les projets CMake et MSBuild est disponible dans Visual Studio 2019 et Visual Studio 2022.
Vous pouvez utiliser Visual Studio 2019 version 16.2 et ultérieure avec Clang/LLVM pour modifier, générer et déboguer des projets Visual Studio C++ (MSBuild) qui ciblent Windows ou Linux.
Installer
Pour obtenir la meilleure prise en charge de l’IDE dans Visual Studio, nous vous recommandons d’utiliser les derniers outils de compilateur Clang pour Windows. Si vous n’avez pas encore les outils, vous pouvez les installer en ouvrant Visual Studio Installer et en choisissant Outils C++ Clang pour Windows sous les composants facultatifs Développement de bureau avec C++ . Si vous préférez utiliser une installation Clang existante sur votre ordinateur, choisissez C++ Clang-cl pour les outils de génération v142 ou C++ Clang-cl pour les outils de génération v143.
Installer
Pour obtenir la meilleure prise en charge de l’IDE dans Visual Studio, nous vous recommandons d’utiliser les derniers outils de compilateur Clang pour Windows. Si vous n’avez pas encore les outils, vous pouvez les installer en ouvrant Visual Studio Installer et en choisissant Outils C++ Clang pour Windows sous les composants facultatifs Développement de bureau avec C++ . Si vous préférez utiliser une installation Clang existante sur votre ordinateur, choisissez Prise en charge de MSBuild pour l’ensemble d’outils LLVM (clang-cl).
La bibliothèque Microsoft C++ Standard nécessite au moins Clang 8.0.0.
L’onglet Composants individuels est sélectionné dans le programme d’installation. Compilateur C++ Clang pour Windows est sélectionné. C++ Clang-cl pour les outils de génération v142 (x64/x86) est également sélectionné.
L’onglet Composants individuels est sélectionné dans le programme d’installation. Compilateur C++ Clang pour Windows est sélectionné. Prise en charge de MSBuild pour l’ensemble d’outils LLVM (clang-cl) est également sélectionné.
Les versions ultérieures de Visual Studio fournissent des versions plus récentes de l’ensemble d’outils Clang. La version de pack de Clang est mise à jour automatiquement en fonction des mises à jour de l’implémentation Microsoft de la bibliothèque Standard. Par exemple, Visual Studio 2019 version 16.11 comprend Clang v12.
Configurer un projet Windows pour utiliser les outils Clang
Pour configurer un projet Visual Studio afin qu’il utilise Clang, cliquez avec le bouton droit sur le nœud du projet dans l’Explorateur de solutions et choisissez Propriétés. En règle générale, vous devez d’abord choisir Toutes les configurations en haut de la boîte de dialogue. Ensuite, sous Général>Ensemble d’outils de plateforme, choisissez LLVM (clang-cl), puis OK.
La page Propriétés du projet est ouverte sur la page Propriétés de configuration > Général. La liste déroulante Ensemble d’outils de plateforme est sélectionnée, dans laquelle LLVM (clang-cl) est sélectionné.
Si vous utilisez les outils Clang inclus avec Visual Studio, aucune étape supplémentaire n’est nécessaire. Pour les projets Windows, Visual Studio appelle par défaut Clang en mode clang-cl. Il fait le lien avec l’implémentation Microsoft de la bibliothèque Standard. Par défaut, clang-cl.exe se trouve dans *%VCINSTALLDIR%\Tools\Llvm\bin\*
et *%VCINSTALLDIR%\Tools\Llvm\x64\bin\*
.
Si vous utilisez une installation Clang personnalisée, vous pouvez changer la valeur de la propriété LLVMInstallDir
. Pour plus d’informations, consultez Définir un emplacement LLVM personnalisé.
Configurer un projet Linux pour utiliser les outils Clang
Pour les projets Linux, Visual Studio utilise le front-end compatible GCC de Clang. Les propriétés du projet et presque tous les indicateurs du compilateur sont identiques
Pour configurer un projet Linux Visual Studio afin qu’il utilise Clang :
- Cliquez avec le bouton droit sur le nœud du projet dans l’Explorateur de solutions, puis choisissez Propriétés.
- En règle générale, vous devez d’abord choisir Toutes les configurations en haut de la boîte de dialogue.
- Sous Général>Ensemble d’outils de plateforme, choisissez Clang pour le Sous-système Windows pour Linux si vous utilisez le Sous-système Windows pour Linux (WSL). Choisissez Clang pour Linux distant si vous utilisez une machine virtuelle ou une machine distante.
- Appuyez sur OK.
La page Propriétés du projet est ouverte sur la page Propriétés de configuration > Général. L’ensemble d’outils de plateforme est sélectionné et, dans la liste des options, LLVM (clang- cl) est sélectionné.
Sur Linux, Visual Studio utilise par défaut le premier emplacement Clang trouvé dans la propriété d’environnement PATH. Si vous utilisez une installation Clang personnalisée, changez la valeur de la propriété LLVMInstallDir
ou entrez le chemin sous Projet>Propriétés>Propriétés de configuration>Répertoires VC++>Répertoires d’exécutables. Pour plus d’informations, consultez Définir un emplacement LLVM personnalisé.
Définir un ensemble d’outils et un emplacement LLVM personnalisés
Pour définir un chemin personnalisé de LLVM et définir une version d’ensemble d’outils LLVM personnalisée pour un ou plusieurs projets, créez un fichier Directory.build.props. Ensuite, ajoutez ce fichier au dossier racine d’un projet. Vous pouvez l’ajouter au dossier de solution racine pour l’appliquer à tous les projets de la solution. Le fichier doit ressembler à cet exemple (mais vous utilisez votre chemin LLVM et votre numéro de version réels) :
<Project>
<PropertyGroup>
<LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
<LLVMToolsVersion>15.0.0</LLVMToolsVersion>
</PropertyGroup>
</Project>
Définir une version d’ensemble d’outils LLVM personnalisée dans l’IDE
À compter de Visual Studio 2019 version 16.9, vous pouvez définir une version d’ensemble d’outils personnalisée pour LLVM dans Visual Studio. Pour définir cette propriété dans un projet :
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de génération.
Sélectionnez la page de propriétés Propriétés de configuration>Général.
Définissez la propriété Ensemble d’outils de plateforme sur LLVM (clang-cl), si elle n’est pas déjà définie. Choisissez Appliquer pour enregistrer vos modifications.
Sélectionnez la page de propriétés Propriétés de configuration>Avancé.
Définissez la propriété Version de l’ensemble d’outils LLVM sur la version de votre choix, puis choisissez OK pour enregistrer vos changements.
La propriété Version de l’ensemble d’outils LLVM s’affiche uniquement quand l’ensemble d’outils de plateforme LLVM est sélectionné.
Quand vous ajoutez un fichier Directory.build.props
à un projet ou une solution, les paramètres s’affichent comme valeurs par défaut dans la boîte de dialogue Pages de propriétés du projet. Toutefois, les changements de ces propriétés dans Visual Studio remplacent les paramètres dans le fichier Directory.build.props
.
Définir des propriétés, modifier, générer et déboguer
Une fois que vous avez configuré une configuration Clang, cliquez de nouveau avec le bouton droit sur le nœud du projet et choisissez Recharger le projet. Vous pouvez maintenant générer et déboguer le projet avec les outils Clang. Visual Studio détecte que vous utilisez le compilateur Clang et fournit IntelliSense, la mise en surbrillance, la navigation et d’autres fonctionnalités d’édition. Les erreurs et avertissements sont affichés dans la fenêtre Sortie. Les pages de propriétés du projet pour une configuration Clang sont similaires à celles de MSVC. Toutefois, certaines fonctionnalités dépendantes du compilateur, comme Modifier et Continuer, ne sont pas disponibles pour les configurations Clang. Vous pouvez définir une option de compilateur ou d’éditeur de liens Clang qui n’est pas disponible dans les pages de propriétés. Ajoutez-la manuellement dans les pages de propriétés sous Propriétés de configuration>C/C++ (ou Éditeur de liens)>Ligne de commande>Options supplémentaires.
Pendant le débogage, vous pouvez utiliser des points d’arrêt, la mémoire et la visualisation des données, ainsi que la plupart des autres fonctionnalités de débogage.
La partie de l’application visible crée un vecteur de chaîne et y ajoute des chaînes. L’exécution s’est arrêtée sur un point d’arrêt pour le code : v.push_back("Clang/LLVM");."