Also hier ist das Repo Ich arbeite mit: https://github.com/Garuda1/unixlibWie "make install" in einem Makefile zu implementieren?
Ich mag gerne wissen, wo mein kompilierte lib (unixlib.a
) und wo mein Kopf (unixlib.h
) so sein sollte, in der Lage sein, die lib zu verwenden (unter Linux-x86 oder Linux-x86_64) einfach durch Kompilieren mit:
$ gcc my_source.c -lunixlib
und einschließlich des Headers in my_source.c
.
Ich glaube, ich fügen Sie diese Makefile
tun:
install:
mv $(NAME).a $(LIB_PATH)
mv unixlib.h $(HEADER_PATH)
aber ich weiß nicht, was $(LIB_PATH)
und $(HEADER_PATH)
sind ...
Warum 'mv'? Dies entfernt die Header-Datei aus Ihrem Quellverzeichnis. 'cp' oder' install' werden normalerweise hier verwendet. Die Zielpfade sind normalerweise so etwas wie '$ (Präfix)/lib' und' $ (Präfix)/include'; Wo möchten Sie Ihre Dateien installieren? –
Ich möchte sie installieren, wo sie gehen müssen, im Grunde, wenn ich 'foo.c' erstellen, in dem ich' # ', möchte ich in der Lage sein, es mit' gcc -lunixlib foo.c' –
Garuda1
zu kompilieren Wo sie hin müssen "ist Distro-/Flavour-abhängig und in Ihrem Fall auf den Standard-Include/Lib-Pathes für gcc. Du solltest für '/ usr/local' als * prefix * gehen, was' LIB_PATH = $ (Präfix)/lib' und 'HEADER_PATH = $ (Präfix)/include' bedeutet, wie Karsten Koop mit' prefix =/usr/local' geschrieben hat . '/ usr /' wird im Allgemeinen vom Distros-Paketmanager verwaltet und '/ usr/local' wird üblicherweise für" lokale Installationen "verwendet - [Sie können darüber in der FHS nachlesen] (https://en.wikipedia.org/ Wiki/Dateisystem_Hierarchie_Standard). Builder können sie mit 'make install prefix =/home/example 'überschreiben – makadev