相关疑难解决方法(0)

有关Makefile的问题-什么是“ $ +”以及在何处调用.c文件/依赖项?

我遇到了这个Makefile(是通过一个名为sendip的开源项目找到的)

我对此文件有两个困惑-

  1. .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)

dependencies gcc makefile gnu-make

4
推荐指数
1
解决办法
265
查看次数

标签 统计

dependencies ×1

gcc ×1

gnu-make ×1

makefile ×1