制作文件:“对“全部”不做任何事情”更改为源文件后

时间:2018-07-21 00:57:22

标签: makefile

我是全新的,可以在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)

2 个答案:

答案 0 :(得分:2)

$(EXE)不依赖任何内容。 make不会为您推断这种依赖关系,您必须对其进行声明。

$(EXE): $(SOURCE)
    $(CC) $(CFLAGS) $(INCLUDE) $(SOURCE) -o $(EXE)

您可能还需要声明对头文件的依赖性。

注意:将目标文件视为“源”有点奇怪。 source/HeapTestEngine.o应该有自己的目标。

答案 1 :(得分:2)

更改:

$(EXE):

进入:

$(EXE): $(SOURCE)