From 2512bd27d716825f1a5c431febb93cea71c7aeb0 Mon Sep 17 00:00:00 2001 From: Hussam Moammar <hussam.moammar@informatik.hs-fulda.de> Date: Sat, 15 Feb 2025 18:31:44 +0100 Subject: [PATCH] Edit Woche 10.md --- Woche 10.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/Woche 10.md b/Woche 10.md index 71ca23f..746b59a 100644 --- a/Woche 10.md +++ b/Woche 10.md @@ -1,4 +1,4 @@ -# Software-Build-Systeme + # Software-Build-Systeme ## Vorlesung 01-17-2025 @@ -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 -- GitLab