Clang-/LLVM-Unterstützung in Visual Studio-Projekten
Die Clang-/LLVM-Unterstützung für CMake- und MSBuild-Projekte ist in Visual Studio 2019 und Visual Studio 2022 verfügbar.
Sie können Visual Studio 2019, Version 16.2 oder höher mit Clang/LLVM zum Bearbeiten, Erstellen und Debuggen von C++-Projekten (MSBuild) in Visual Studio für Windows oder Linux verwenden.
Installieren
Es wird empfohlen, die neuesten Clang-Compilertools für Windows zu verwenden, um die beste IDE-Unterstützung in Visual Studio zu erhalten. Wenn Sie diese Tools noch nicht installiert haben, können Sie dies nachholen, indem Sie den Visual Studio-Installer öffnen und C++-Clang-Tools für Windows unter den optionalen Komponenten für die Desktopentwicklung mit C++ auswählen. Wenn Sie es bevorzugen, eine auf Ihrem Computer vorhandene Clang-Installation zu verwenden, wählen Sie C++-Clang-cl für v142-Buildtools oder C++-Clang-cl für v143-Buildtools.
Installieren
Es wird empfohlen, die neuesten Clang-Compilertools für Windows zu verwenden, um die beste IDE-Unterstützung in Visual Studio zu erhalten. Wenn Sie diese Tools noch nicht installiert haben, können Sie dies nachholen, indem Sie den Visual Studio-Installer öffnen und C++-Clang-Tools für Windows unter den optionalen Komponenten für die Desktopentwicklung mit C++ auswählen. Wenn Sie es bevorzugen, eine auf Ihrem Computer vorhandene Clang-Installation zu verwenden, wählen Sie MSBuild-Unterstützung für LLVM-Toolset (clang-cl).
Die C++-Standardbibliothek von Microsoft erfordert mindestens Clang 8.0.0.
Die Registerkarte „Einzelne Komponenten“ ist im Installationsprogramm ausgewählt. „C++-Clang-Compiler für Windows“ ist ausgewählt. „C++-Clang-cl für v142-Buildtools (x64/x86)“ ist auch ausgewählt.
Die Registerkarte „Einzelne Komponenten“ ist im Installationsprogramm ausgewählt. „C++-Clang-Compiler für Windows“ ist ausgewählt. „MSBuild-Unterstützung für LLVM-Toolset (clang-cl)“ ist auch ausgewählt.
Spätere Versionen von Visual Studio umfassen neuere Versionen des Clang-Toolsets. Die enthaltene Version von Clang wird automatisch aktualisiert, damit sie immer auf dem aktuellen Stand der Microsoft-Implementierung der Standardbibliothek ist. Visual Studio 2019, Version 16.11 umfasst beispielsweise Clang v12.
Konfigurieren eines Windows-Projekts zur Verwendung von Clang-Tools
Klicken Sie mit der rechten Maustaste auf den Projektknoten im Projektmappen-Explorer, und wählen Sie dann Eigenschaften aus, um ein Visual Studio-Projekt zur Verwendung von Clang zu konfigurieren. In der Regel sollten Sie zuerst oben im Dialogfeld auf Alle Konfigurationen klicken. Wählen Sie dann unter Allgemein>Plattformtoolset die Option LLVM (clang-cl) aus, und klicken Sie auf OK.
Auf der Projekteigenschaftenseite ist „Konfigurationseigenschaften“ > „Allgemein“ geöffnet. Das Dropdownmenü „Plattformtoolset“ ist ausgewählt, auf dem wiederum „LLVM (clang-cl)“ ausgewählt ist.
Wenn Sie die Clang-Tools verwenden, die in Visual Studio enthalten sind, sind keine zusätzlichen Schritte erforderlich. Bei Windows-Projekten ruft Visual Studio Clang standardmäßig im clang-cl-Modus auf. Es besteht eine Verknüpfung mit der Microsoft-Implementierung der Standardbibliothek. Standardmäßig ist clang-cl.exe unter *%VCINSTALLDIR%\Tools\Llvm\bin\*
und *%VCINSTALLDIR%\Tools\Llvm\x64\bin\*
gespeichert.
Wenn Sie eine benutzerdefinierte Clang-Installation verwenden, können Sie den Wert der Eigenschaft LLVMInstallDir
ändern. Weitere Informationen finden Sie unter Festlegen eines benutzerdefinierten LLVM-Speicherorts.
Konfigurieren eines Linux-Projekts zur Verwendung von Clang-Tools
Für Linux-Projekte verwendet Visual Studio das Front-End mit Clang GCC-Kompatibilität. Die Projekteigenschaften und nahezu alle Compilerflags sind identisch.
So konfigurieren Sie ein Linux-Projekt in Visual Studio für die Verwendung von Clang:
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie dann Eigenschaften aus.
- In der Regel sollten Sie zuerst oben im Dialogfeld auf Alle Konfigurationen klicken.
- Wählen Sie unter Allgemein>Plattformtoolset die Option Clang für Windows-Subsystem für Linux aus, wenn Sie das Windows-Subsystem für Linux (WSL) verwenden. Wählen Sie Clang für Remote-Linux aus, wenn Sie einen Remotecomputer oder eine VM verwenden.
- Klicken Sie auf OK.
Auf der Projekteigenschaftenseite ist „Konfigurationseigenschaften“ > „Allgemein“ geöffnet. „Plattformtoolset“ ist ausgewählt, und aus der Liste der Optionen ist wiederum „LLVM (clang-cl)“ ausgewählt.
Unter Linux verwendet Visual Studio standardmäßig den ersten Clang-Speicherort, der in der PATH-Umgebungseigenschaft gefunden wird. Wenn Sie eine benutzerdefinierte Clang-Installation verwenden, müssen Sie entweder den Wert der LLVMInstallDir
-Eigenschaft ändern oder den Pfad unter Projekt>Eigenschaften>VC++-Verzeichnisse>Konfigurationseigenschaften>Ausführbare Verzeichnisse eingeben. Weitere Informationen finden Sie unter Festlegen eines benutzerdefinierten LLVM-Speicherorts.
Festlegen eines benutzerdefinierten LLVM-Speicherorts und -Toolsets
Um einen benutzerdefinierten Pfad zu LLVM festzulegen und eine benutzerdefinierte LLVM-Toolsetversion für ein oder mehrere Projekte festzulegen, erstellen Sie eine Directory.build.props-Datei. Fügen Sie diese Datei anschließend dem Stammordner jedes Projekts hinzu. Sie können die Datei zum Stammprojektmappen-Ordner hinzufügen, um den Pfad für alle Projekte in der Projektmappe festzulegen. Die Datei sollte wie in diesem Beispiel aussehen (verwenden Sie aber Ihren tatsächlichen LLVM-Pfad und die korrekte Versionsnummer):
<Project>
<PropertyGroup>
<LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
<LLVMToolsVersion>15.0.0</LLVMToolsVersion>
</PropertyGroup>
</Project>
Festlegen einer benutzerdefinierten LLVM-Toolsetversion in der IDE
Ab Visual Studio 2019, Version 16.9 können Sie eine benutzerdefinierte Toolsetversion für LLVM in Visual Studio festlegen. So legen Sie diese Eigenschaft in einem Projekt fest:
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen finden Sie unter Festlegen der Compiler- und Buildeigenschaften (C++).
Wählen Sie die Eigenschaftenseite Konfigurationseigenschaften>Allgemein aus.
Ändern Sie die Eigenschaft Plattformtoolset in LLVM (clang-cl), sofern diese noch nicht festgelegt ist. Wählen Sie Übernehmen aus, um Ihre Änderungen zu speichern.
Wählen Sie die Eigenschaftenseite unter Konfigurationseigenschaften>Erweitert aus.
Ändern Sie die Eigenschaft LLVM-Toolsetversion in die gewünschte Version, und wählen Sie dann OK aus, um Ihre Änderungen zu speichern.
Die Eigenschaft LLVM-Toolsetversion wird nur angezeigt, wenn das LLVM-Plattformtoolset ausgewählt ist.
Wenn Sie eine Directory.build.props
-Datei zu einem Projekt oder einer Lösung hinzufügen, werden die Einstellungen im Dialogfeld „Eigenschaftenseiten“ des Projekts als Standardeinstellungen angezeigt. Doch Änderungen an diesen Eigenschaften in Visual Studio überschreiben die Einstellungen in der Datei Directory.build.props
.
Festlegen von Eigenschaften, Bearbeiten, Erstellen und Debuggen
Nachdem Sie eine Clang-Konfiguration eingerichtet haben, klicken Sie wieder mit der rechten Maustaste auf den Projektknoten, und wählen Sie dann Projekt erneut laden aus. Sie können nun damit beginnen, das Projekt mit den Clang-Tools zu erstellen und zu debuggen. Visual Studio erkennt, dass Sie den Clang-Compiler verwenden, und stellt IntelliSense, die Hervorhebung, die Navigation und andere Bearbeitungsfeatures bereit. Fehler und Warnungen werden im Ausgabefenster angezeigt. Die Projekteigenschaftenseiten für eine Clang-Konfiguration ähneln denjenigen für MSVC. Einige compilerabhängige Features wie das Bearbeiten und Fortfahren sind für Clang-Konfigurationen allerdings nicht verfügbar. Sie können eine Clang-Compileroption oder eine Linkeroption festlegen, die nicht auf den Eigenschaftenseiten verfügbar ist. Fügen Sie diese unter Konfigurationseigenschaften>C/C++ (oder Linker)>Befehlszeile>Weitere Optionen manuell zu den Eigenschaftenseiten hinzu.
Beim Debuggen können Sie Haltepunkte, die Speicher- und Datenvisualisierung sowie die meisten anderen Debugfunktionen verwenden.
Der sichtbare Teil der App erstellt einen Zeichenfolgenvektor und fügt ihm einige Zeichenfolgen hinzu. Die Ausführung wurde an einem Breakpoint für den Code gestoppt: v.push_back("Clang/LLVM");.