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.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage