Muszę uruchomić te 4 polecenia na terminalu za każdym razem, gdy chcę uruchomić program przy użyciu bibliotek.Makefile dla biblioteki
Linie są
cc -m32 -c mylib.c
ar -rcs libmylib.a mylib.o
cc -m32 -c prog.c
cc -m32 prog.o -L. -lmylib
./a.out
Jak zrobić makefile dla powyższych poleceń i uruchomić go? Szczegółowa procedura byłaby doceniona. Dzięki.
Edit: Oto rozwiązanie:
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
Dało błąd na linii nr 2, ponieważ użyłem spacji zamiast zakładki.
Tutaj jest trochę nadmiarowości. W przypadku bibliotek statycznych uzyskasz taki sam wynik, jeśli po prostu połączysz pliki '.o' bezpośrednio z aplikacją, zamiast umieszczać je najpierw w pliku' .a'. Biblioteka statyczna to przecież tylko kilka połączonych ze sobą plików '.o'. –