Hilfe zum Makefile
Hallo!
Ich sollte für die Uni eine kleine, vereinfachte Freispeicherverwaltung in C schreiben ( void* allocate(): Gibt Pointer auf freien Speicher zurück; void deallocate(void* p): gibt Speicher an p frei). Da es mein erstes C-Programm ist, habe ich Problem beim Erstellen des Makefiles. Hier zunächst die "Dateiabhängigkeiten":
allocate.c:
#include "arena.h"
#include "allocate.h"
arena.c:
#include "arena.h"
testapp.c:
#include "allocate.h"
Die allocate.c und allocate.h habe ich selber geschrieben.
Auch wurde uns schon ein Makefile, was wahrscheinlich unvollständig ist, mitgegeben:
Die Aufgabenstellung enthielt diese Voraussetzungen:
Meine Überlegungen für das Makefile waren diese, was jedoch nicht klappte:
Könnt ihr mir helfen, wie das Makefile aussehen müsste?
Danke!
Hallo!
Ich sollte für die Uni eine kleine, vereinfachte Freispeicherverwaltung in C schreiben ( void* allocate(): Gibt Pointer auf freien Speicher zurück; void deallocate(void* p): gibt Speicher an p frei). Da es mein erstes C-Programm ist, habe ich Problem beim Erstellen des Makefiles. Hier zunächst die "Dateiabhängigkeiten":
allocate.c:
#include "arena.h"
#include "allocate.h"
arena.c:
#include "arena.h"
testapp.c:
#include "allocate.h"
Die allocate.c und allocate.h habe ich selber geschrieben.
Auch wurde uns schon ein Makefile, was wahrscheinlich unvollständig ist, mitgegeben:
Code:
libarena.a: arena.o
ar rcs $@ $<
arena.o: arena.h
clean:
rm -f arena.o libarena.a
Senden Sie Ihre Lösung in Form eines einzelen gzip-komprimierten Tarfiles ein. Dieses sollte im Wurzelverzeichnis ein Makefile haben, mit zwei Zielen "liballocate.a" und "testapp" (basierend auf testapp.c). Gehen Sie in Ihrer Lösung davon aus, dass die Makefile-Variable LIBARENA das Verzeichnis angibt, in dem sich libarena.a und arena.h befinden.
Meine Überlegungen für das Makefile waren diese, was jedoch nicht klappte:
Code:
LIBS=L. -larena
testapp: testapp.o libarena.a
cc -Wall -o testapp testapp.o ${LIBS}
libarena.a: arena.o allocate.o
ar rcs libarena.a arena.o allocate.o
arena.o: arena.h
allocate.o: allocate.h
clean:
rm -f testapp *.o *.a
Danke!
Zuletzt bearbeitet: