|
Programmieren unter UNIX
Termin
Die Lösung für diese Aufgabe ist bis zum 12.11.2006 einzureichen.
Aufgabe 1
Diese Übung soll Sie mit der Programmierumgebung unter Unix
vertraut machen.
Die Aufgabe besteht darin, ein einfaches, aus zwei Moduln
bestehendes Programm zu schreiben und daraus mit dem Compiler und
Linker ein lauffähiges Programm zu erzeugen. Compiler und Linker
sollen dabei von einer Projektdatei (einem Makefile)
gesteuert werden, das auch die Abhängigkeiten der Objekt- und
Quelldateien untereinander festlegt und so dafür sorgt, daß
nach einer Änderung einer Quelldatei alle davon abhängigen
Objektdateien neu compiliert werden.
In Ihrem Beispielprogramm verwenden Sie bitte folgende Module:
- main.c
- enthält das Hauptprogramm. Es erwartet eine Zahl als Parameter
auf der Kommandozeile des Programms und soll alle Primzahlen
bis zu dieser Zahl ausgeben. Dazu benutzt es folgendes
Unterprogramm:
- prime.c
- enthält eine Funktion isprime(), die testet, ob eine
als Parameter übergebene Zahl eine Primzahl ist.
Hier ist eine Beispielsitzung mit diesem Programm:
$ prim 15
2
3
5
7
11
13
$ _
- Programmieren Sie die Module des Programms. Die Schnittstelle
der Unterprogramme zum Hauptprogramm sollen über Header-Dateien
exportiert werden, die vom Hauptprogramm mit
"#include" eingebunden werden.
- Schreiben Sie ein Makefile. Das Makefile sollte nach
Möglichkeit aus lediglich drei Regeln bestehen:
- einer Regel zur Erzeugung des ausführbaren Programmes
aus den zwei Objekt-Dateien,
- einer clean Regel, die alle generierten Dateien löscht,
- einer Regel zur automatischen Generierung von Abhängigkeiten.
Das Programm soll mit der Compiler-Option -Wall
generiert werden.
- Übersetzen und linken Sie die Module mit Hilfe des
Makefile und dem Programm make.
- Testen Sie das korrekte Generieren des Programms und das
Programm selbst. Als Make-Version soll GNU Make Verwendung finden,
welches z.B. auf Ganymed installiert ist.
Eine vollständige Lösung besteht aus den
(funktionstüchtigen) Quelldateien und aus einem Makefile,
das Compiler und Linker aufruft.
Material
- Online-Ressourcen:
- Make Beschreibung
Prüfung auf Korrektheit der Lösung
Bei der Bewertung der Lösung werden 3 Dinge geprüft:
- Enthält das Makefile wirklich nur drei Regeln?
- Wird -Wall zum Übersetzen verwendet?
- Stimmen die Abhängigkeiten? (hier werde ich der Reihe nach
Änderungen an den Dateien mittels 'touch' simulieren und dann prüfen,
ob wirklich nur die minimal nötige Anzahl von Befehlen zum Generieren
des Programms ausgeführt wird).
|