我正在尝试编辑一个 makefile,我之前已经构建了自己的,但我很难理解这个非常小的示例,它显然使用了我不知道的约定。我已经查看了 GNU 文档,但不太确定要搜索什么。
makefile定义了SRCS
OBJS
LIBS
CC
CFLAGS
然后 makefile 会编译这些库,而无需具体说明如何进行。例如文件中的行是:
mgrid.o: array_alloc.h timer.h
但是makefile实际执行的是:
gcc -std=c89 -Wall -Wextra -pedantic -c -o mgrid.o mgrid.c
谁能帮忙解释一下这是怎么回事?我在哪里可以找到有关如何定义这些标准的信息?
最佳答案
make
有一定的默认规则
$(CC) $(CFLAGS) -o $@ $^
是一般默认规则。
mgrid.o: array_alloc.h timer.h
只告诉 mgrid.o
也依赖于 array_alloc.h timer.h
关于c - 低估一个非常小的 GNU makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545431/