Ich muss diese 4 Befehle auf dem Terminal jedes Mal ausführen, wenn ich das Programm mit Bibliotheken ausführen möchte.Makefile für eine Bibliothek
Die Linien sind
cc -m32 -c mylib.c
ar -rcs libmylib.a mylib.o
cc -m32 -c prog.c
cc -m32 prog.o -L. -lmylib
./a.out
Wie kann ich ein Makefile für die oben genannten Befehle machen und es laufen? Ein detailliertes Verfahren wäre willkommen. Vielen Dank.
Edit: Hier ist die Lösung:
a.out: prog.o libmylib.a
cc prog.o -L. -lmylib
prog.o: prog.c mylib.h
libprint_int.a: mylib.o
ar -rcs libmylib.a mylib.o
print_int.o: mylib.c mylib.h
clean:
rm a.out prog.o libmylib.a mylib.o
Dies gab einen Fehler in Zeile 2, weil ich Leerzeichen Tab anstelle von.
Hier gibt es ein wenig Redundanz. Bei statischen Bibliotheken erhalten Sie dasselbe Ergebnis, wenn Sie die '.o'-Dateien direkt in die Anwendung einbinden, anstatt sie zuerst in eine' .a'-Datei zu stopfen. Eine statische Bibliothek ist schließlich nur ein Haufen zusammengefügter ".o" -Dateien. –