makefile即使没有任何更改也可以执行目标

makefile即使没有任何更改也可以执行目标,makefile,Makefile,我有一个简单的makefile,它工作得很好,但它似乎执行得很好 all目标,即使未发生任何更改。我希望有一个 make: Nothing to be done for 'all'. 消息,但每当我调用make时,它都会继续执行目标。 以下是我的简单makefile: BASEDIR = /home/someuser/STA SRC_DIR = ${BASEDIR}/src OBJ_DIR = ${BASEDIR}/obj INC_DIR = ${BASEDIR}/inc SRC_FILES

我有一个简单的
makefile
,它工作得很好,但它似乎执行得很好
all
目标,即使未发生任何更改。我希望有一个

make: Nothing to be done for 'all'.
消息,但每当我调用
make
时,它都会继续执行目标。 以下是我的简单makefile:

BASEDIR = /home/someuser/STA
SRC_DIR = ${BASEDIR}/src
OBJ_DIR = ${BASEDIR}/obj
INC_DIR = ${BASEDIR}/inc

SRC_FILES        = $(wildcard  ${SRC_DIR}/*.cpp)
SRC_FILES_NOTDIR = $(notdir    ${SRC_FILES})
OBJ_FILES_NOTDIR = $(patsubst  %.cpp, %.cpp.o, ${SRC_FILES_NOTDIR})
OBJ_FILES        = $(addprefix ${OBJ_DIR}/,${OBJ_FILES_NOTDIR})
INC_FILES        = $(wildcard  ${INC_DIR}/*.h)

all: ${OBJ_FILES}
    g++ ${OBJ_FILES} -o program

${OBJ_DIR}/%.cpp.o: ${SRC_DIR}/%.cpp ${INC_FILES}
    g++ -I${INC_DIR} -o $@ -c $<

program
替换非文件且不存在的所有
(make每次尝试构建它的原因),make可以看到的真实文件。如果您确实想要一个
all
符号目标,请将其声明为,并添加一个不带配方的规则,以说明
all
取决于
program

.PHONY: all
all: program

program
替换非文件且不存在的所有
(make每次尝试构建它的原因),make可以看到的真实文件。如果您确实想要一个
all
符号目标,请将其声明为,并添加一个不带配方的规则,以说明
all
取决于
program

.PHONY: all
all: program