因此,这里是我的工作回购:https://github.com/Garuda1/unixlib如何在Makefile中实现“make install”?
我想知道我的编译LIB(unixlib.a
),并在我的头(unixlib.h
)应以能够使用的lib(下Linux的x86或Linux的x86_64的)简单地通过编译:
$ gcc my_source.c -lunixlib
和包括在my_source.c
头。
我想我补充这样做是为了Makefile
:
install:
mv $(NAME).a $(LIB_PATH)
mv unixlib.h $(HEADER_PATH)
,但我不知道是什么$(LIB_PATH)
和$(HEADER_PATH)
是...
为什么'mv'?这会从源目录中删除头文件。 'cp'或'install'通常在这里使用。目标路径通常是'$(prefix)/ lib'和'$(prefix)/ include';你想在哪里安装你的文件? –
我想将它们安装到他们需要去的地方,基本上如果我创建'foo.c',其中''#include',我希望能够用'gcc -lunixlib foo.c'编译它' –
Garuda1
“他们需要去的地方“是依赖于发行版/风格,并且在你的情况下,默认为gcc的Include/Lib路径。你应该用'prefix =/usr/local'写成'/ usr/local'作为* prefix *,意思是'LIB_PATH = $(prefix)/ lib'和'HEADER_PATH = $(prefix)/ include',就像Karsten Koop写的一样。 。 '/ usr /'通常由distros软件包管理器和'/ usr/local'管理,通常用于“本地安装” - [你可以在FHS中阅读](https://en.wikipedia.org/)。维基/ Filesystem_Hierarchy_Standard)。建设者可以使用'make install prefix =/home/example'来覆盖它 – makadev