Add Modul 0: Entwicklungsumgebung
This commit is contained in:
416
src/c_examples/module0_setup.c
Normal file
416
src/c_examples/module0_setup.c
Normal file
@@ -0,0 +1,416 @@
|
|||||||
|
// ============================================
|
||||||
|
// Modul 0: Entwicklungsumgebung einrichten
|
||||||
|
// Ein Leitfaden für VS Code, C/C++ und Git
|
||||||
|
// ============================================
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dieses Modul ist KEIN C-Code, sondern eine Anleitung!
|
||||||
|
* Speichere dies als .md oder lies es als Kommentar.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
================================================================================
|
||||||
|
🛠️ MODUL 0: ENTWICKLUNGSUMGEBUNG EINRICHTEN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Dieses Modul zeigt, wie du eine professionelle C/C++ Entwicklungsumgebung
|
||||||
|
mit Visual Studio Code einrichtest und mit Git/Gitea arbeitest.
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
📥 SCHITT 1: VISUAL STUDIO CODE INSTALLIEREN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Linux (Ubuntu/Debian):
|
||||||
|
-----------------------
|
||||||
|
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
|
||||||
|
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
|
||||||
|
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
|
||||||
|
rm -f packages.microsoft.gpg
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install code
|
||||||
|
|
||||||
|
Windows:
|
||||||
|
--------
|
||||||
|
1. https://code.visualstudio.com/download
|
||||||
|
2. Installer herunterladen und ausführen
|
||||||
|
3. "Add to PATH" aktivieren!
|
||||||
|
|
||||||
|
macOS:
|
||||||
|
------
|
||||||
|
brew install --cask visual-studio-code
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
🔧 SCHRITT 2: C/C++ EXTENSIONS INSTALLIEREN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
In VS Code (Ctrl+Shift+X für Extensions):
|
||||||
|
|
||||||
|
1. **C/C++** (Microsoft)
|
||||||
|
- ID: ms-vscode.cpptools
|
||||||
|
- IntelliSense, Debugging, Code-Navigation
|
||||||
|
|
||||||
|
2. **C/C++ Extension Pack** (Microsoft)
|
||||||
|
- ID: ms-vscode.cpptools-extension-pack
|
||||||
|
- CMake Tools, CMake, Makefile Tools
|
||||||
|
|
||||||
|
3. **GitLens** (GitKraken)
|
||||||
|
- ID: eamodio.gitlens
|
||||||
|
- Erweiterte Git-Integration
|
||||||
|
|
||||||
|
4. **Error Lens** (Alexander)
|
||||||
|
- ID: usernamehw.errorlens
|
||||||
|
- Fehler direkt im Code anzeigen
|
||||||
|
|
||||||
|
5. **Better Comments** (Aaron Bond)
|
||||||
|
- ID: aaron-bond.better-comments
|
||||||
|
- Farbige Kommentare (TODO, FIXME, etc.)
|
||||||
|
|
||||||
|
Tastenkürzel für Extensions: Ctrl+Shift+X
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
⚙️ SCHRITT 3: C/C++ COMPILER INSTALLIEREN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Linux (GCC):
|
||||||
|
------------
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install build-essential gdb
|
||||||
|
|
||||||
|
# Prüfen:
|
||||||
|
gcc --version # Sollte 11.x oder höher zeigen
|
||||||
|
g++ --version # Sollte 11.x oder höher zeigen
|
||||||
|
|
||||||
|
Windows (MinGW-w64):
|
||||||
|
--------------------
|
||||||
|
Option A: MSYS2 (Empfohlen)
|
||||||
|
1. https://www.msys2.org/ herunterladen
|
||||||
|
2. Installieren und Terminal öffnen
|
||||||
|
3. pacman -S mingw-w64-x86_64-gcc
|
||||||
|
4. C:\msys64\mingw64\bin zu PATH hinzufügen
|
||||||
|
|
||||||
|
Option B: WinLibs (Einfacher)
|
||||||
|
1. https://winlibs.com/
|
||||||
|
2. GCC-Version herunterladen
|
||||||
|
3. Entpacken und bin/ zu PATH hinzufügen
|
||||||
|
|
||||||
|
macOS (Clang):
|
||||||
|
--------------
|
||||||
|
# Xcode Command Line Tools
|
||||||
|
xcode-select --install
|
||||||
|
|
||||||
|
# Oder GCC via Homebrew
|
||||||
|
brew install gcc
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
📁 SCHRITT 4: PROJEKTSTRUKTUR ERSTELLEN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Empfohlene Struktur für C-Projekte:
|
||||||
|
------------------------------------
|
||||||
|
my-project/
|
||||||
|
├── .vscode/ # VS Code Konfiguration
|
||||||
|
│ ├── tasks.json # Build-Tasks
|
||||||
|
│ ├── launch.json # Debugging
|
||||||
|
│ └── settings.json # Editor-Einstellungen
|
||||||
|
├── src/ # Quellcode
|
||||||
|
│ ├── main.c
|
||||||
|
│ └── utils.c
|
||||||
|
├── include/ # Header-Dateien
|
||||||
|
│ └── utils.h
|
||||||
|
├── tests/ # Unit-Tests
|
||||||
|
├── build/ # Kompilierte Dateien (gitignore!)
|
||||||
|
├── docs/ # Dokumentation
|
||||||
|
├── Makefile # Build-Anweisungen
|
||||||
|
├── README.md # Projektbeschreibung
|
||||||
|
└── .gitignore # Git-Ausschlüsse
|
||||||
|
|
||||||
|
VS Code Konfiguration (.vscode/tasks.json):
|
||||||
|
-------------------------------------------
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Build C Program",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "gcc",
|
||||||
|
"args": [
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-Wextra",
|
||||||
|
"-o",
|
||||||
|
"${workspaceFolder}/build/${fileBasenameNoExtension}",
|
||||||
|
"${file}"
|
||||||
|
],
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"problemMatcher": ["$gcc"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Build with Makefile",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "make",
|
||||||
|
"group": "build"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
VS Code Debugging (.vscode/launch.json):
|
||||||
|
----------------------------------------
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Debug C Program",
|
||||||
|
"type": "cppdbg",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/build/${fileBasenameNoExtension}",
|
||||||
|
"args": [],
|
||||||
|
"stopAtEntry": false,
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"environment": [],
|
||||||
|
"externalConsole": false,
|
||||||
|
"MIMode": "gdb",
|
||||||
|
"setupCommands": [
|
||||||
|
{
|
||||||
|
"description": "Enable pretty-printing",
|
||||||
|
"text": "-enable-pretty-printing",
|
||||||
|
"ignoreFailures": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"preLaunchTask": "Build C Program"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
🌿 SCHRITT 5: GIT INITIALISIEREN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Git Konfiguration:
|
||||||
|
------------------
|
||||||
|
git config --global user.name "Dein Name"
|
||||||
|
git config --global user.email "dein.email@example.com"
|
||||||
|
git config --global init.defaultBranch main
|
||||||
|
|
||||||
|
Git Initialisierung:
|
||||||
|
--------------------
|
||||||
|
cd mein-projekt
|
||||||
|
git init
|
||||||
|
|
||||||
|
.gitignore erstellen:
|
||||||
|
---------------------
|
||||||
|
# Build artifacts
|
||||||
|
build/
|
||||||
|
*.o
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.a
|
||||||
|
*.so
|
||||||
|
*.dll
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.vscode/settings.json
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Debugging
|
||||||
|
*.dSYM/
|
||||||
|
*.su
|
||||||
|
*.idb
|
||||||
|
*.pdb
|
||||||
|
|
||||||
|
Erster Commit:
|
||||||
|
--------------
|
||||||
|
git add .
|
||||||
|
git commit -m "Initial commit: Projektstruktur"
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
🌐 SCHRITT 6: GITEA/GITHUB VERBINDEN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
SSH-Key erstellen:
|
||||||
|
------------------
|
||||||
|
ssh-keygen -t ed25519 -C "dein.email@example.com"
|
||||||
|
|
||||||
|
# Public Key anzeigen:
|
||||||
|
cat ~/.ssh/id_ed25519.pub
|
||||||
|
|
||||||
|
# In Gitea/GitHub einfügen:
|
||||||
|
# Settings → SSH and GPG keys → New SSH key
|
||||||
|
|
||||||
|
Repository verbinden:
|
||||||
|
---------------------
|
||||||
|
# Für Gitea:
|
||||||
|
git remote add origin git@gitea.ragtag.rocks:username/repo-name.git
|
||||||
|
|
||||||
|
# Für GitHub:
|
||||||
|
git remote add origin git@github.com:username/repo-name.git
|
||||||
|
|
||||||
|
# Oder via HTTPS:
|
||||||
|
git remote add origin https://gitea.ragtag.rocks/username/repo-name.git
|
||||||
|
|
||||||
|
Push:
|
||||||
|
-----
|
||||||
|
git push -u origin main
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
📋 SCHRITT 7: TÄGLICHER WORKFLOW
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
1. Änderungen machen
|
||||||
|
- Code in VS Code bearbeiten
|
||||||
|
- Speichern (Ctrl+S)
|
||||||
|
|
||||||
|
2. Kompilieren (Ctrl+Shift+B)
|
||||||
|
- Task: "Build C Program" oder "Build with Makefile"
|
||||||
|
|
||||||
|
3. Testen
|
||||||
|
- Terminal: ./build/programm
|
||||||
|
- Oder Debuggen: F5
|
||||||
|
|
||||||
|
4. Commit
|
||||||
|
git add .
|
||||||
|
git commit -m "Beschreibung der Änderungen"
|
||||||
|
git push
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
🐛 SCHRITT 8: DEBUGGING IN VS CODE
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Breakpoints setzen:
|
||||||
|
-------------------
|
||||||
|
- F9 oder Klick links neben Zeilennummer
|
||||||
|
- Bedingte Breakpoints: Rechtsklick → "Edit Breakpoint"
|
||||||
|
|
||||||
|
Debugging starten:
|
||||||
|
------------------
|
||||||
|
- F5: Debuggen starten
|
||||||
|
- F10: Step Over (nächste Zeile)
|
||||||
|
- F11: Step Into (in Funktion hinein)
|
||||||
|
- Shift+F11: Step Out (aus Funktion heraus)
|
||||||
|
- Shift+F5: Stop
|
||||||
|
|
||||||
|
Variablen inspizieren:
|
||||||
|
----------------------
|
||||||
|
- Links im Debug-Panel: Variablen, Watch, Call Stack
|
||||||
|
- Hover über Variable im Code zeigt Wert
|
||||||
|
- Debug Console: Ausdrücke auswerten
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
🎯 CHECKPOINT 0: TESTE DEINE UMGEBUNG
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Aufgabe: Erstelle ein "Hello, World!" Programm
|
||||||
|
|
||||||
|
1. Erstelle Projektstruktur
|
||||||
|
2. Erstelle src/main.c:
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
printf("Hello, World!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
3. Erstelle Makefile:
|
||||||
|
CC = gcc
|
||||||
|
CFLAGS = -Wall -Wextra -g
|
||||||
|
|
||||||
|
hello: src/main.c
|
||||||
|
$(CC) $(CFLAGS) -o build/hello src/main.c
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f build/hello
|
||||||
|
|
||||||
|
4. Kompiliere: make
|
||||||
|
5. Führe aus: ./build/hello
|
||||||
|
6. Committe: git add . && git commit -m "Initial: Hello World"
|
||||||
|
7. Pushe: git push
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
💡 TIPPS & TRICKS
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
VS Code Shortcuts:
|
||||||
|
------------------
|
||||||
|
Ctrl+` Terminal öffnen
|
||||||
|
Ctrl+Shift+B Build
|
||||||
|
F5 Debuggen
|
||||||
|
Ctrl+Space IntelliSense
|
||||||
|
Ctrl+Click Zur Definition springen
|
||||||
|
F12 Definition öffnen
|
||||||
|
Ctrl+/ Zeile kommentieren
|
||||||
|
Ctrl+D Nächstes Vorkommen auswählen
|
||||||
|
Ctrl+Shift+L Alle Vorkommen auswählen
|
||||||
|
|
||||||
|
Nützliche Extensions:
|
||||||
|
---------------------
|
||||||
|
- Code Runner: Schnell Code ausführen
|
||||||
|
- Todo Tree: TODOs im Projekt finden
|
||||||
|
- Path Intellisense: Autocomplete für Pfade
|
||||||
|
- Bracket Pair Colorizer: Klammern farbig
|
||||||
|
- indent-rainbow: Einrückung farbig
|
||||||
|
|
||||||
|
Git in VS Code:
|
||||||
|
---------------
|
||||||
|
- Source Control Panel (Ctrl+Shift+G)
|
||||||
|
- Änderungen stagen, committen, pushen
|
||||||
|
- Branches erstellen/wechseln
|
||||||
|
- Merge-Konflikte lösen
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
🔧 FEHLERBEHEBUNG
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Problem: "gcc: command not found"
|
||||||
|
Lösung: PATH überprüfen, Compiler neu installieren
|
||||||
|
|
||||||
|
Problem: "cannot open output file"
|
||||||
|
Lösung: build/ Verzeichnis erstellen: mkdir build
|
||||||
|
|
||||||
|
Problem: "undefined reference"
|
||||||
|
Lösung: Linker-Flags hinzufügen (z.B. -lm für Math)
|
||||||
|
|
||||||
|
Problem: Git Permission denied
|
||||||
|
Lösung: SSH-Key prüfen, remote URL überprüfen
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
📚 WEITERFÜHRENDE RESSOURCEN
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
VS Code C/C++ Tutorial:
|
||||||
|
https://code.visualstudio.com/docs/languages/cpp
|
||||||
|
|
||||||
|
Git Dokumentation:
|
||||||
|
https://git-scm.com/doc
|
||||||
|
|
||||||
|
Gitea Dokumentation:
|
||||||
|
https://docs.gitea.io/
|
||||||
|
|
||||||
|
Interactive Git Tutorial:
|
||||||
|
https://learngitbranching.js.org/
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
✅ BEREIT FÜR MODUL 1?
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Wenn du:
|
||||||
|
- [ ] VS Code installiert hast
|
||||||
|
- [ ] C/C++ Extensions installiert hast
|
||||||
|
- [ ] Compiler (gcc/g++) funktioniert
|
||||||
|
- [ ] Git konfiguriert hast
|
||||||
|
- [ ] Hello World kompiliert und ausgeführt hast
|
||||||
|
- [ ] Ein Repository erstellt und gepusht hast
|
||||||
|
|
||||||
|
... dann bist du bereit für Modul 1: Das Memory-Modell!
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user