我是全新的,可以在linux中制作文件,并试图为简单的堆管理程序提供一个制作文件。
执行make命令时,它可以最初构建我的程序,但是在对源文件quickfit.c进行更改后,make无法识别更改,并说“ make:'all'all't nothing。” / p>
为什么更改后不重新编译我的软件?我所有的源文件都放在一个源文件夹中,而我的所有头文件都放在一个include文件夹中。
CC=gcc
CFLAGS= -Wall -w -g
INCLUDE:= -Iinclude/
SOURCE:= source/quickfit.c \
source/HeapTestEngine.o
EXE=QuickFit
all: $(EXE)
$(EXE):
$(CC) $(CFLAGS) $(INCLUDE) $(SOURCE) -o $(EXE)
答案 0 :(得分:2)
$(EXE)
不依赖任何内容。 make
不会为您推断这种依赖关系,您必须对其进行声明。
$(EXE): $(SOURCE)
$(CC) $(CFLAGS) $(INCLUDE) $(SOURCE) -o $(EXE)
您可能还需要声明对头文件的依赖性。
注意:将目标文件视为“源”有点奇怪。 source/HeapTestEngine.o
应该有自己的目标。
答案 1 :(得分:2)
更改:
$(EXE):
进入:
$(EXE): $(SOURCE)