考虑以下简单的makefile
CC=gcc
CFLAGS=-I.
all: hellomake
hellomake.o: hellomake.c hellomake.h
$(CC) -c hellomake.c -o hellomake.o $(CFLAGS)
hellofunc.o: hellofunc.c hellomake.h
$(CC) -c hellofunc.c -o hellofunc.o $(CFLAGS)
hellomake: hellomake.o hellofunc.o
$(CC) -o hellomake hellomake.o hellofunc.o
clean: rm hellomake *.o
在这种情况下,必须在末尾包含变量 $(CFLAGS) 才能包含 .h 文件(在本例中为 hellomake.h)。但是,在下面的makefile中,没有必要,变量会自动追加
CC=gcc
CFLAGS=-I.
hellomake: hellomake.o hellofunc.o
$(CC) -o hellomake hellomake.o hellofunc.o
我的问题是,在哪些情况下会附加 CFLAGS?为什么在第一个代码片段上不是这样?谢谢你!