2015-07-10 12 views
37

Per quanto ho capito, Visual Studio 2015 viene fornito con clang. Per prima cosa pensavo che fosse solo per le app Android e iOS, ma in base allo this article dovrebbe anche essere possibile utilizzare il frontend clang ++ per i programmi Windows. Tuttavia, non riesco a trovare l'opzione giusta.Come compilare C++ per Windows con clang in Visual Studio 2015

Quindi potresti spiegarmi come posso modificare il compilatore utilizzato in clang in un progetto C++ (in VS2015 RC Community Edition).

+0

Vuoi dire da [questa pagina] (http://llvm.org/builds/), che comprende le istruzioni per utilizzare clang in Visual Studio? – sjdowling

+0

@sjdowling: potrei sbagliarmi, ma non credo. Dall'articolo che ho collegato (e altri) ho avuto l'impressione, ci dovrebbe essere una versione di clang spedita direttamente con VS. Inoltre, l'autore dell'articolo menzionato, che userebbe clang come frontend, ma usa ancora VC++ come generatore di codice di backend per Windows. La versione che hai collegato sem per usare llvm come back-end. Inoltre non sembra ancora supportare VS2015. – MikeMB

risposta

23

A partire dall'aggiornamento 1 VS2015 è possibile installare il modello "Clang con Microsoft CodeGen" tramite la finestra Nuovo progetto, selezionare Installa -> Modelli -> Visual C++ -> Cross Platform.

Sarai quindi in grado di scegliere Clang 3.7 con Microsoft CodeGen v140_clang_3_7 Platform Toolset nella pagina delle proprietà di qualsiasi progetto Windows C++.

Clang ha una serie completamente diversa di opzioni della riga di comando che si riconosce, quindi quando si utilizza il v140_clang_3_7 set di strumenti, le proprietà del progetto deve utilizzare opzioni compatibili Clang, che possono essere riconosciuti come iniziano - anziché /. Ad esempio, la proprietà Debug Information Format è impostata su "Full Debug Information (DWARF2) (-g2 -gdwarf-2)" e la proprietà Enable Excepences C++ è impostata su "Yes (-fexceptions)".

Sono disponibili ulteriori informazioni in this blog post.

screenshot of the new project window

+0

È già uscito? – MikeMB

+0

@MikeMB Update 1 RTM è uscito ieri, 30 ottobre 2015. http://go.microsoft.com/fwlink/?LinkId=691129 – Oktalist

+0

Cercando di creare una "Libreria dinamica - Clang 3.7 con Microsoft CodeGen" senza apportare modifiche un errore LNK1104 (https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k(LNK1104)&rd=true). Qualcuno lo sperimenta? – Wollan

7

Per quanto mi risulta sia Clang e GCC vengono forniti con le Android e iOS SDK multipiattaforma/strumenti per Visual Studio 2015.

Da quello che ho visto in quanto consente solo me scegliere chi, pur avendo uno di quei progetti multipiattaforma.

Utilizzando il modello di progetto per un'applicazione GLES C++ si ottengono i seguenti opzioni:

enter image description here

Mentre per un'applicazione Windows C++ si ottiene la finestra di sotto dove si può vedere che la piattaforma di destinazione Windows è in grigio e di sola lettura, nel senso che probabilmente hai un set di toolkit per ogni piattaforma di destinazione, ma non puoi semplicemente cambiarlo, almeno per ora. enter image description here

ho idea di come si accende un normale VS progetto in multipiattaforma, però, ed è probabile che si può solo colpire Android o iOS, fuori dalla scatola usando 3rd compilatori di partito.

Tuttavia, potrebbe essere possibile installare Clang come un altro toolkit nello stesso modo dei toolkit di XP. Quindi forse è solo una questione di qualcuno che la manipola e la rende disponibile in quanto è già installata.

+1

Per me funziona bene in tutti i miei progetti C++. (Applicazione console Win32 e applicazione Windows Universal e DirectX 11) Esiste un'opzione "Visual Studio 2015 - Clang con Microsoft CodeGen (v140_clang_c2)". Quindi suppongo sia disponibile ora. Oh, e può essere installato come opzione dal normale programma di installazione VS2015. Non sono richieste altre opzioni multipiattaforma. – Farway

3

Dopo aver letto il post collegato e soprattutto i commenti, ho compreso che non si tratta di una funzionalità fornita con VS2015 RC ma di una possibile funzione futura che potrebbe ad es. essere spedito in un SP o (più probabilmente) con la prossima versione di VS.

Come accennato da sjdowling, la cosa più vicina che puoi fare al momento (ottobre 2015, clang 3.7) è scaricare e installare llvm for windows. Questo dovrebbe darti un'opzione per il set di strumenti della piattaforma LLVM-vs2014. Per me funziona per semplici programmi di test, ma a quanto pare questa versione di "clang-vs" sembra non supportare ancora le eccezioni. Tuttavia, secondo these notes, questo problema dovrebbe essere risolto principalmente per clang 3.8.

0

Mentre le soluzioni di cui sopra lavoro che richiedono che si è installato clang che è disattivata per impostazione predefinita in Visual Studio 2015 installazione. La risposta accettata mostra come installarlo, sebbene la pagina successiva ti chieda di chiudere lo studio visivo da cui stai eseguendo il nuovo progetto.

Se qualcuno si sta chiedendo come installare clang perché non si presenta nella loro lista qui è un'altra soluzione:

  1. Pannello di controllo-> Programmi> Programmi e funzionalità.
  2. clic destro su “Microsoft Visual Studio Enterprise 2015” (o “Microsoft Visual
  3. Studio 15 Anteprima” se avete la preview della prossima versione di Visual Studio installata)
  4. Fare clic su “Modifica”
  5. Fare clic su "Modifica"
  6. Selezionare "Clang with Microsoft CodeGen" - La versione di marzo 2016.

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

Problemi correlati