Supporto di Clang/LLVM nei progetti di Visual Studio
Il supporto Clang/LLVM per i progetti CMake e MSBuild è disponibile in Visual Studio 2019 e Visual Studio 2022.
È possibile usare Visual Studio 2019 versione 16.2 e successive con Clang/LLVM per modificare, compilare ed eseguire il debug di progetti visual Studio C++ (MSBuild) destinati a Windows o Linux.
Installa
Per il miglior supporto dell'IDE in Visual Studio, è consigliabile usare gli strumenti del compilatore Clang più recenti per Windows. Se non si dispone già degli strumenti, è possibile installarli aprendo il Programma di installazione di Visual Studio e scegliendo strumenti Clang C++ per Windows in Sviluppo desktop con componenti facoltativi C++. È consigliabile usare un'installazione Clang esistente nel computer; in tal caso, scegliere Clang-cl C++ per gli strumenti di compilazione v142 o Clang-cl C++ per gli strumenti di compilazione v143.
Installa
Per il miglior supporto dell'IDE in Visual Studio, è consigliabile usare gli strumenti del compilatore Clang più recenti per Windows. Se non si dispone già degli strumenti, è possibile installarli aprendo il Programma di installazione di Visual Studio e scegliendo strumenti Clang C++ per Windows in Sviluppo desktop con componenti facoltativi C++. È consigliabile usare un'installazione Clang esistente nel computer; in tal caso, scegliere il supporto di MSBuild per il set di strumenti LLVM (clang-cl).
La libreria standard Microsoft C++ richiede almeno Clang 8.0.0.
La scheda Singoli componenti è selezionata nel programma di installazione. Il compilatore Clang C++ per Windows è selezionato. È selezionato anche Clang-cl C++ per gli strumenti di compilazione v142 (x64/x86).
La scheda Singoli componenti è selezionata nel programma di installazione. Il compilatore Clang C++ per Windows è selezionato. È selezionato anche il supporto di MSBuild per il set di strumenti LLVM (clang-cl).
Le versioni successive di Visual Studio offrono versioni più recenti del set di strumenti Clang. La versione in bundle di Clang viene aggiornata automaticamente per rimanere aggiornati con gli aggiornamenti nell'implementazione Microsoft della libreria standard. Ad esempio, Visual Studio 2019 versione 16.11 include Clang v12.
Configurare un progetto Windows per l'uso degli strumenti Clang
Per configurare un progetto di Visual Studio per l'uso di Clang, fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e scegliere Proprietà. In genere, è necessario scegliere Tutte le configurazioni nella parte superiore della finestra di dialogo. Quindi, in Set di strumenti della piattaforma generale>scegliere LLVM (clang-cl) e quindi OK.
La pagina delle proprietà del progetto è aperta alla pagina Proprietà di configurazione > Generale. L'elenco a discesa Set di strumenti della piattaforma è selezionato in cui è selezionato LLVM (clang-cl).
Se si usano gli strumenti Clang in bundle con Visual Studio, non sono necessari passaggi aggiuntivi. Per i progetti Windows, Visual Studio per impostazione predefinita richiama Clang in modalità clang-cl . Si collega all'implementazione Microsoft della libreria standard. Per impostazione predefinita, clang-cl.exe si trova in *%VCINSTALLDIR%\Tools\Llvm\bin\*
e *%VCINSTALLDIR%\Tools\Llvm\x64\bin\*
.
Se si usa un'installazione Clang personalizzata, è possibile modificare il valore della LLVMInstallDir
proprietà . Per altre informazioni, vedere Impostare un percorso LLVM personalizzato.
Configurare un progetto Linux per l'uso degli strumenti Clang
Per i progetti Linux, Visual Studio usa il front-end compatibile con Clang GCC. Le proprietà del progetto e quasi tutti i flag del compilatore sono identici
Per configurare un progetto Linux di Visual Studio per l'uso di Clang:
- Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e scegliere Proprietà.
- In genere, è necessario scegliere Tutte le configurazioni nella parte superiore della finestra di dialogo.
- In Set di strumenti della piattaforma generale>scegliere Clang per sottosistema Windows per Linux se si usa sottosistema Windows per Linux (WSL). Scegliere Clang per Linux remoto se si usa un computer remoto o una macchina virtuale.
- Scegliere OK.
La pagina delle proprietà del progetto è aperta alla pagina Proprietà di configurazione > Generale. Il set di strumenti della piattaforma è selezionato e dall'elenco delle opzioni è selezionato LLVM (clang- c l).
In Linux Visual Studio per impostazione predefinita usa il primo percorso Clang trovato nella proprietà dell'ambiente PATH. Se si usa un'installazione Clang personalizzata, modificare il valore della LLVMInstallDir
proprietà oppure immettere il percorso in> Proprietà>progetto Proprietà di progetto Directory>eseguibili di DIrectories.> Per altre informazioni, vedere Impostare un percorso LLVM personalizzato.
Impostare un percorso e un set di strumenti LLVM personalizzati
Per impostare un percorso personalizzato su LLVM e impostare una versione personalizzata del set di strumenti LLVM per uno o più progetti, creare un file Directory.build.props . Aggiungere quindi il file alla cartella radice di qualsiasi progetto. È possibile aggiungerlo alla cartella della soluzione radice per applicarla a tutti i progetti della soluzione. Il file dovrebbe essere simile a questo esempio (ma usare il percorso LLVM effettivo e il numero di versione):
<Project>
<PropertyGroup>
<LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
<LLVMToolsVersion>15.0.0</LLVMToolsVersion>
</PropertyGroup>
</Project>
Impostare una versione personalizzata del set di strumenti LLVM nell'IDE
A partire da Visual Studio 2019 versione 16.9, è possibile impostare una versione del set di strumenti personalizzata per LLVM in Visual Studio. Per impostare questa proprietà in un progetto:
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per altre informazioni, vedere Impostare il compilatore C++ e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà di configurazione>Generale.
Modificare la proprietà Platform Toolset in LLVM (clang-cl), se non è già impostata. Scegliere Applica per salvare le modifiche.
Selezionare la pagina delle proprietà Proprietà>di configurazione Avanzate.
Modificare la proprietà LLVM Toolset Version (Versione del set di strumenti LLVM) nella versione preferita e quindi scegliere OK per salvare le modifiche.
La proprietà LLVM Toolset Version viene visualizzata solo quando è selezionato il set di strumenti della piattaforma LLVM.
Quando si aggiunge un Directory.build.props
file a un progetto o a una soluzione, le impostazioni vengono visualizzate come predefinite nella finestra di dialogo Pagine delle proprietà del progetto. Tuttavia, le modifiche apportate a queste proprietà in Visual Studio sostituiscono le impostazioni nel Directory.build.props
file.
Impostare proprietà, modificare, compilare ed eseguire il debug
Dopo aver configurato una configurazione Clang, fare di nuovo clic con il pulsante destro del mouse sul nodo del progetto e scegliere Ricarica progetto. È ora possibile compilare ed eseguire il debug del progetto usando gli strumenti Clang. Visual Studio rileva che si usa il compilatore Clang e fornisce IntelliSense, evidenziazione, navigazione e altre funzionalità di modifica. Gli errori e gli avvisi vengono visualizzati nella finestra di output. Le pagine delle proprietà del progetto per una configurazione Clang sono simili a quelle per MSVC. Tuttavia, alcune funzionalità dipendenti dal compilatore, ad esempio Modifica e continuazione, non sono disponibili per le configurazioni Clang. È possibile impostare un'opzione del compilatore o del linker Clang non disponibile nelle pagine delle proprietà. Aggiungerlo manualmente nelle pagine delle proprietà in Proprietà>di configurazione C/C++ (o Linker)>Opzioni aggiuntive della riga di comando.>
Durante il debug, è possibile usare punti di interruzione, visualizzazione di memoria e dati e la maggior parte delle altre funzionalità di debug.
La parte dell'app visibile crea un vettore di stringa e aggiunge alcune stringhe. L'esecuzione è stata arrestata in un punto di interruzione per il codice: v.push_back("Clang/LLVM");".