web-dev-qa-db-fra.com

Comment compiler C ++ pour Windows avec clang dans Visual Studio 2015

Pour autant que je comprends, Visual Studio 2015 est livré avec clang. Tout d'abord, je pensais que c'était uniquement pour Android et les applications iOS, mais selon cet article il devrait également être possible d'utiliser le frontend clang ++ pour les programmes Windows. Cependant, je ne trouve pas l'option correspondante.

Alors pourriez-vous s'il vous plaît m'expliquer comment je peux changer le compilateur utilisé en clang dans un projet c ++ (dans VS2015 RC Community Edition).

42
MikeMB

À partir de VS2015 Update 1, vous pouvez installer le modèle "Clang with Microsoft CodeGen" via la fenêtre Nouveau projet, accédez à Installed -> Templates -> Visual C++ -> Cross Platform.

Vous pourrez alors choisir le Clang 3.7 avec Microsoft CodeGen v140_clang_3_7 Platform Toolset dans la page des propriétés de tout projet Windows C++.

Clang a un ensemble complètement différent d'options de ligne de commande qu'il reconnaît, donc lorsque vous utilisez le v140_clang_3_7 toolset, les propriétés du projet doivent utiliser des options compatibles avec Clang, qui peuvent être reconnues comme commençant par - au lieu de /. Par exemple, la propriété Debug Information Format définie sur "Informations de débogage complètes (DWARF2) (-g2 -gdwarf-2) "et la propriété Activer les exceptions C++ définie sur" Oui (-fexceptions) ".

Il y a plus d'informations dans cet article de blog .

screenshot of the new project window

25
Oktalist

Pour autant que je sache, Clang et GCC sont livrés avec les Android et SDK/outils multiplateformes iOS pour Visual Studio 2015.

D'après ce que j'ai vu, cela ne me permet que de les choisir tout en ayant l'un de ces projets multiplateformes.

En utilisant le projet de modèle pour une application GLES C++, vous obtenez les options suivantes:

enter image description here

Alors que pour une application Windows C++, vous obtenez la boîte de dialogue ci-dessous où vous pouvez voir que la plate-forme cible Windows est grisée et en lecture seule, ce qui signifie que vous avez probablement un ensemble de boîtes à outils pour chaque plate-forme cible, mais vous ne pouvez tout simplement pas le changer, au moins pour à présent. enter image description here

Cependant, vous ne savez pas comment transformer un projet VS normal en plateforme croisée, et il est probable que vous ne pouvez cibler que Android ou iOS hors de la boîte à l'aide de compilateurs tiers).

Il peut être possible, cependant, d'installer Clang comme une autre boîte à outils de la même manière que les boîtes à outils XP.) Il s'agit donc peut-être simplement de quelqu'un qui le manipule et le rend disponible car il est déjà installée.

Avertissement: Cette réponse est la mise à jour 1 antérieure à VS2015 qui ne comportait pas l'option "Clang with Microsoft CodeGen".

10
Trinidad

Après avoir lu le message lié et surtout les commentaires à nouveau, j'ai compris que ce n'est pas une fonctionnalité livrée avec VS2015 RC mais une future fonctionnalité possible qui pourrait par exemple être livré dans un SP ou (plus probablement) avec la prochaine version de VS.

Comme mentionné par sjdowling, la chose la plus proche que vous pouvez faire pour le moment (octobre 2015, clang 3.7) est de télécharger et d'installer llvm pour Windows . Cela devrait vous donner une option de jeu d'outils de plate-forme LLVM-vs2014. Pour moi, cela fonctionne pour les programmes de test simples, mais apparemment, cette version de "clang-vs" ne semble pas encore prendre en charge les exceptions. Cependant, selon ces notes , ce problème devrait être principalement résolu pour le clang 3.8.

3
MikeMB

Bien que les solutions ci-dessus fonctionnent, elles nécessitent que vous ayez installé clang qui est désactivé par défaut dans l'installation de Visual Studio 2015. La réponse acceptée montre comment l'installer, bien que la page suivante vous demandera de fermer Visual Studio à partir duquel vous exécutez le nouveau projet.

Si quelqu'un se demande comment installer clang car il n'apparaît pas dans sa liste, voici une autre solution:

  1. Panneau de configuration-> Programmes-> Programmes et fonctionnalités.
  2. Faites un clic droit sur "Microsoft Visual Studio Enterprise 2015" (ou "Microsoft Visual
  3. Studio 15 Preview ”si vous avez installé l'aperçu de la prochaine version de Visual Studio)
  4. Cliquez sur "Changer"
  5. Cliquez sur "Modifier"
  6. Sélectionnez "Clang with Microsoft CodeGen" - La version de mars 2016.

https://blogs.msdn.Microsoft.com/vcblog/2016/03/31/clang-with-Microsoft-codegen-march-2016-released/

0
marsh