我遇到了这个Makefile(是通过一个名为sendip的开源项目找到的)
我对此文件有两个困惑-
.c文件在哪里被指定为依赖项?虽然所有像图书馆ipv6.so,tcp.so正在生成细,但此行是负责呢?我认为这是行.....对吗?
%.so: %.c $(LIBS)
$(CC) -o $@ $(CFLAGS) $(LIBCFLAGS) $+ $(LIBS)
Run Code Online (Sandbox Code Playgroud)
但$(LIBS)只指定一些.o文件。这是$+在做什么吗?
2,我从未听说过$+。我试图找到它,并在许多人来了,如同$?,$@,$<等,但从来没有见过这个。我认为它的行为类似,$?但仍然需要.c指定依赖关系。
生成文件:
#configureable stuff
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
MANDIR ?= $(PREFIX)/share/man/man1
LIBDIR ?= $(PREFIX)/lib/sendip
#For most systems, this works
INSTALL ?= install
#For Solaris, you may need
#INSTALL=/usr/ucb/install
CFLAGS= -fPIC -fsigned-char -pipe -Wall -Wpointer-arith -Wwrite-strings \
-Wstrict-prototypes -Wnested-externs -Winline -Werror -g -Wcast-align …Run Code Online (Sandbox Code Playgroud)