C: Erstellen einer statischen Bibliothek und Verknüpfen mit einem Makefile
Ich versuche zu statische und gemeinsam genutzte Bibliotheken verstehen.
Ich möchte Folgendes tun, um ein Makefile zu erstellen, das das Kompilieren und Verknüpfen getrennt durchführt, sodass eine statische Bibliothek erstellt und beim Bilden der endgültigen statischen ausführbaren Datei verknüpft wird.
Ich habe den folgenden Code für das Makefile, aber ich erhalte die folgende Fehlermeldung
Makefile:13: *** missing separator. Stop.
Aber ich versuche auch zu verstehen, wie man Bibliotheken verknüpft / erstellt.
Wenn ich die Befehle nach @ ausführline 12
im Terminal funktionieren sie, aber nicht im Makefile.
myProgram: main.o addSorted.o freeLinks.o
gcc -lm -o myProgram main.o addSorted.o freeLinks.o
main.o: main.c
gcc -O -c -lm main.c main.h
addSorted.o: addSorted.c addSorted.h
gcc -O -c -lm addSorted.c
freeLinks.o: freeLinks.c freeLinks.h
gcc -O -c -lm freeLinks.c
ar rc libmylib.a main.o addSorted.o freeLinks.o //Error Line
ranlib libmylib.a
gcc -o foo -L. -lmylib foo.o
clean:
rm -f myProgram main.o addSorted.o freeLinks.o
Auch wenn Sie bei der Verbesserung des Codes behilflich sein können, wäre ich sehr dankbar.