C-LehrumgebungGleicher Compiler. Gleiche Werkzeuge. Auf Windows, macOS und Linux. Die C-Lehrumgebung ist ein Extension Pack für C-Lehrveranstaltungen der Hochschule Campus Wien. Sie ergänzt Visual Studio Code um die Erweiterungen, die zum Arbeiten in einer reproduzierbaren Entwicklungsumgebung benötigt werden. Die eigentliche Toolchain läuft in einem Dev Container. Studierende verwenden dadurch unabhängig vom Host-Betriebssystem dieselben Versionen von Compiler, Debugger und Build-Werkzeugen. Enthaltene ErweiterungenDieses Extension Pack installiert:
Die Erweiterungen bleiben unabhängig verwaltbar und können über die Extension-Ansicht von Visual Studio Code aktualisiert oder deaktiviert werden. VoraussetzungenVor der ersten Verwendung werden benötigt:
Schnellstart
Falls der Hinweis nicht erscheint:
Hinweise nach BetriebssystemWindowsFür Windows wird Docker Desktop mit dem WSL-2-Backend empfohlen. WSL 2 ist nicht bei jeder denkbaren Container-Konfiguration zwingend erforderlich, stellt aber den vorgesehenen und am einfachsten unterstützbaren Weg für diese Lehrumgebung dar. Vor dem Öffnen des Kursprojekts sollten diese Befehle in PowerShell funktionieren:
Das Projekt sollte möglichst nicht gleichzeitig mit nativen Windows-Werkzeugen und Container-Werkzeugen gebaut werden. So werden unterschiedliche Binärformate, Pfade und Zeilenenden vermieden. macOSDocker Desktop muss gestartet sein, bevor das Kursprojekt als Dev Container geöffnet wird. Die Architektur des Macs – Intel oder Apple Silicon – wird vom verwendeten Container-Image berücksichtigt. Zur Kontrolle können im Terminal ausgeführt werden:
LinuxDocker Engine oder eine kompatible Container-Laufzeit muss installiert sein. Der angemeldete Benutzer benötigt die Berechtigung, Container ohne interaktive Root-Anmeldung zu starten. WSL 2 unter WindowsWas ist WSL 2?WSL 2 steht für Windows Subsystem for Linux 2. Es ist eine Windows-Komponente, die einen Linux-Kernel in einer leichtgewichtigen virtuellen Maschine ausführt. Docker Desktop kann darauf Linux-Container betreiben, ohne dass Windows ersetzt oder ein Dual-Boot-System eingerichtet werden muss. Für diese Lehrumgebung ergibt sich unter Windows folgender Aufbau:
VS Code läuft weiterhin als normale Windows-Anwendung. WSL 2 und Docker arbeiten größtenteils im Hintergrund. VoraussetzungenDie vereinfachte Installation wird von Windows 11 und aktuellen Windows-10-Versionen unterstützt. Außerdem muss die Hardware-Virtualisierung im UEFI/BIOS aktiviert sein. Auf zentral verwalteten Hochschul- oder Firmenrechnern können dafür Administratorrechte oder Unterstützung durch die IT erforderlich sein. WSL 2 installieren
Neue Linux-Distributionen verwenden normalerweise WSL 2 als Standard. In der Ausgabe von WSL aktualisierenEin vorhandenes WSL kann über PowerShell aktualisiert werden:
Anschließend kann ein Neustart von WSL oder Windows erforderlich sein. Docker Desktop konfigurierenNach der WSL-Installation:
Weitere Details stehen in der Docker-Dokumentation zum WSL-2-Backend. Wenn WSL 2 nicht verwendet werden kannWSL 2 wird nur für den empfohlenen lokalen Windows-Weg benötigt. Mögliche Alternativen sind Docker Desktop mit einem anderen unterstützten Backend, ein entfernter Docker-Host oder eine browserbasierte Umgebung wie GitHub Codespaces. Welche Alternative in einer Lehrveranstaltung unterstützt wird, sollte vorab mit dem Lehrveranstaltungsteam geklärt werden. Umgebung überprüfenNach dem Öffnen des Dev Containers sollten im integrierten VS-Code-Terminal folgende Befehle funktionieren:
Die angezeigten Versionen werden durch das Kursprojekt festgelegt und sollten daher bei allen Studierenden übereinstimmen. Hello-World-StarterprojektZum Ausprobieren der vollständigen Umgebung steht ein öffentliches Starterprojekt bereit: Es enthält einen schlanken, auf C zugeschnittenen Debian-Dev-Container mit GCC, GDB und Make, ein minimales C-Programm sowie fertige Build- und Debug-Tasks für Visual Studio Code. Das Repository kann geklont oder als ZIP heruntergeladen und anschließend direkt im Dev Container geöffnet werden. Häufige Probleme„Reopen in Container“ wird nicht angezeigtPrüfen, ob diese Extension installiert und aktiviert ist. Anschließend die Befehlspalette öffnen und Dev Containers: Reopen in Container ausführen. Verbindung zu Docker schlägt fehlPrüfen, ob Docker Desktop beziehungsweise Docker Engine läuft:
Werden nur Client-Informationen oder eine Fehlermeldung angezeigt, ist die Container-Laufzeit noch nicht erreichbar. Der Container wurde nach einer Änderung nicht aktualisiertIn der Befehlspalette Dev Containers: Rebuild Container ausführen. Dabei wird die Entwicklungsumgebung anhand der Konfiguration des Kursprojekts neu erstellt. IntelliSense findet Standard-Header nichtZuerst kontrollieren, ob links unten in Visual Studio Code angezeigt wird, dass das Projekt im Dev Container geöffnet ist. Die C/C++ Extension muss innerhalb des Containers aktiv sein. Was gehört ins Kursprojekt?Die reproduzierbare C-Umgebung wird nicht in diesem Extension Pack, sondern im jeweiligen Kurs-Repository beschrieben. Dazu gehören typischerweise:
Dadurch werden Compilerflags, Debug-Konfiguration und Übungsdateien gemeinsam versioniert und können für jede Lehrveranstaltung gezielt angepasst werden. Datenschutz und TelemetrieDieses Extension Pack enthält keinen ausführbaren Programmcode, überträgt keine Daten und erhebt selbst keine Telemetrie. Es veranlasst Visual Studio Code lediglich, die oben aufgeführten Erweiterungen zu installieren. Für diese Erweiterungen und für Visual Studio Code gelten die jeweiligen Bedingungen ihrer Anbieter. Quellcode und SupportDer Quellcode dieses Extension Packs ist öffentlich verfügbar: Bei Problemen mit einer konkreten Lehrveranstaltung sollten sich Studierende zuerst an das jeweilige Lehrveranstaltungsteam wenden. LizenzDer Quellcode dieses Extension Packs steht unter der MIT-Lizenz. Die gebündelten Erweiterungen werden unter ihren jeweils eigenen Lizenzen bereitgestellt. |