Skip to content
Snippets Groups Projects
Commit 2512bd27 authored by Hussam Moammar's avatar Hussam Moammar
Browse files

Edit Woche 10.md

parent 0b761d0d
No related branches found
No related tags found
No related merge requests found
......@@ -208,5 +208,55 @@ mkdir build && cd build
cmake -G Ninja ..
ninja
```
#### Antwort:
Hier sind die Antworten zu den gestellten Aufgaben:
### **Kompilieren mit gcc:**
Befehl:
```sh
gcc -o pythagoras main.c pythagoras.c -lm
./pythagoras
```
**Ergebnis:** Das Programm fragt nach den Kathetenlängen und berechnet die Hypotenuse.
### **Erstellen eines Build-Systems mit Make:**
Befehl:
```sh
make
./pythagoras
```
**Ergebnis:** Make kompiliert das Programm automatisch gemäß `Makefile`.
### **Erstellen eines Build-Systems mit CMake:**
Befehle:
```sh
mkdir build && cd build
cmake ..
make
./pythagoras
```
**Ergebnis:** CMake generiert Makefiles und baut das Programm.
### **Erstellen eines Build-Systems mit Ninja:**
Befehle:
```sh
mkdir build && cd build
cmake -G Ninja ..
ninja
./pythagoras
```
**Ergebnis:** Ninja baut das Programm schneller als Make.
### **Reflexion (Lerntagebuch):**
- **Schwierigkeiten:**
- Fehlerhafte Pfade bei `cmake ..` (muss im `build/`-Verzeichnis ausgeführt werden).
- Fehlende `-lm`-Option bei direktem `gcc`-Kompilieren.
- **Vergleich der Methoden:**
- **gcc**: Manuelle, einfache Methode, aber fehleranfällig.
- **Make**: Erleichtert den Prozess mit vordefinierten Regeln.
- **CMake**: Portabler für verschiedene Plattformen.
- **Ninja**: Schneller als Make, aber erfordert `CMakeLists.txt`.
Hast du spezielle Fragen zu einem Schritt?
---
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment