一种常见的 makefile 有这样一行:
OBJS=something.o other.o third.o progname.o
progname: $(OBJS)
Run Code Online (Sandbox Code Playgroud)
然后你会跑make progname。但是 GNU Make 也可以从它在当前目录中看到的所有 c 文件中生成 o 文件本身的列表。这是怎么做的?
基本上,我希望能够将 C 文件添加到目录中,而无需更改 makefile。
(例如是通过一些shell-magic,还是有一个内置函数?)
也可以这样做:
SRCS = $(wildcard *.c)
OBJS = $(SRCS:.c=.o)
progname: $(OBJS)
Run Code Online (Sandbox Code Playgroud)
如果其中包含的目标文件main()是“progname.o”,则效果很好。