Diese Schritt-für-Schritt Anleitung soll den Weg für eine minimale Installation von Clang in Kombination mit dem MSVC weisen.
Stand: 17. Juni 2023
Korrekturen dank Hinweisen von Krishty
Folgende Komponenten müssen installiert werden:
- Clang Compiler (LLVM)
- Buildtools für Visual Studio (für Header- und Lib-Dateien der C Standard Library)
- Windows SDK (für Header- und Lib-Dateien der C Standard Library)
- INCLUDE
- LIB
Clang Compiler
Den Clang Compiler herunterladen und installieren.
https://github.com/llvm/llvm-project/re ... org-15.0.7
Datei: LLVM-15.0.7-win64.exe
Damit Clang später über die Kommandozeile aus jedem Verzeichnis gestartet werden kann, muss der Pfad zu seiner .exe Datei in einer entsprechenden Umgebungsvariable gesetzt sein.
Das setzen dieses Eintrages nimmt einem das Installationsprogramm von Clang ab, sofern man die entsprechende Checkbox nicht explizit abwählt.
MSVC Linker (und Compiler)
Die Buildtools für Visual Studio liefern neben dem Compiler und Linker (die hier nicht zwingend benötigt würden) Header- und Lib-Dateien.
https://visualstudio.microsoft.com/de/d ... uild+tools
Runterscrollen bis zu Tools für Visual Studio
Im Installations-Menü, im Reiter Einzelne Komponenten, unter dem Eintrag Compiler, Buildtools und Laufzeiten folgenden Eintrag auswählen:
Code: Alles auswählen
MSVC v143 - VS 2022 C++ x64/x86-Buildtoos (v14.36-17.6)
Header und Libs
Weitere Header- und Lib-Dateien werden mittels Microsoft SDK installiert.
Das Microsoft SDK als Installer oder als ISO Datei herunterladen (ISO Datei kann auch mittels 7-Zip entpackt werden).
https://developer.microsoft.com/de-de/w ... ndows-sdk/
Installer ausführen und folgende Optionen auswählen:
- Windwos SDK Signing Tools for Desktop Apps
- Windows SDK for UWP Managed Apps
- Windows SDK for UWP C++ Apps
- Windows SDK for Desktop C++ x86 Apps
- Windows SDK for Desktop C++ x64 Apps
Es ist nicht möglich, weniger anzuwählen, wenn Header und Libs für die X64 und X86 Desktop-Entwicklung installiert werden sollen.
Falls das SDK bereits installiert wurde fehlt im Installer die entsprechende Option zur Installation.
Lediglich ein erneuter Download ist möglich.
Das SDK muss in diesem Fall über die Systemsteuerung (Programme und Funktionen) "geändert" oder "deinstalliert" werden.
Das SDK wird in folgendes Verzeichnis installiert:
C:\Program Files (x86)\Windows Kits\10\
Falls ein anderes Verzeichnis gewählt wird, gilt es dies im nächsten Schritt zu berücksichtigen.
Umgebungsvariablen setzen
Damit der Clang Compiler alle nötigen Header- und Lib-Dateien finden kann, müssen einige Umgebungsvariablen gesetzt werden.
Die Umgebungsvariablen können manuell mittels Kommandozeile dauerhaft gesetzt werden.
Hierfür muss die Kommandozeile mit Adminrechten gestartet werden.
Das Schema zum dauerhaften Setzen einer Umgebungsvariable lautet wie folgt:
Code: Alles auswählen
setx [Umgebungsvariable] [Wert] /m
Die Option /m setzt die Umgebungsvariable für alle User.
Sollen die bereits bestehenden Werte einer Umgebungsvariablen erhalten bleiben, können diese durch das entsprechende Token
%[Umgebungsvariable]% jeweils am Anfang oder am Ende des neuen Eintrages eingebunden werden (Siehe Beispiel weiter unten bei PATH).
Alternativ:
Systemsteuerung => System => Erweiterte Systemeinstellungen => Reiter: Erweitert => Umgebungsvariablen
Vor dem Setzen der Umgebungsvariablen prüfen, ob die Pfade auf dem Zielsystem tatsächlich in dieser Form existieren (Version des Compilers - hier "14.36.32532", plattformspezifisches wie "x64", Version des SDK's - hier "10.0.22621.0")
INCLUDE
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\include;
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um;
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared;
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt;
C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt;
Befehl in der Kommandozeile:
Code: Alles auswählen
setx INCLUDE "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\cppwinrt" /m
LIB
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\lib\x64;
C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64;
C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\um\x64;
Befehl in der Kommandozeile:
Code: Alles auswählen
setx LIB "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\lib\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\um\x64;" /m
PATH
Falls man das Setzen einer Umgebungsvariable nicht durch das Installationsprogramm von Clan erledigen lassen wollte, kann hierzu auch die Umgebungsvariable PATH entsprechend erweitert werden.
Code: Alles auswählen
setx PATH "%PATH%C:\llvm\bin;" /m
Die Konsolen-Sitzung muss nach dem Setzen der Umgebungsvariablen neu gestartet werden.
Danach kann der Clang Compiler verwendet werden.
Damit Clang den eigenen Linker, und nicht den MSVC Linker verwendet, muss mit folgender Compiler-Option compiliert werden:
Code: Alles auswählen
-fuse-ld=lld