C: Criando biblioteca estática e vinculando usando um Makefile
estou tentandoentender bibliotecas estáticas e compartilhadas.
Quero fazer o seguinte para criar um makefile que separa a compilação e a vinculação, de modo que uma biblioteca estática seja criada e vinculada na formação do executável estático final.
Eu tenho o seguinte código para o Makefile, mas estou recebendo o seguinte erro
Makefile:13: *** missing separator. Stop.
Mas também estou tentando entender como realmente vincular / criar bibliotecas.
Se eu executar os comandos depoisline 12
no terminal eles trabalham, mas não no 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
Além disso, se você puder ajudar a melhorar o código, eu realmente aprecio isso.