最后执行Makefile,Anonymous rm命令

时间:2014-04-29 07:24:17

标签: makefile gnu-make

Makefile的必需条带如下

PCS=$(wildcard $(PC)/*.pc)
SRCS=$(PCS:$(PC)/%.pc=$(SRC)/%.cpp)
OBJS=$(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o)

f2db : $(OBJS)
    $(CC) $(INCS) $(LIBS) $(FLAGS) $(OBJS) f2db.cpp -o $@

$(OBJ)/%.o : $(SRC)/%.cpp
    $(CC) $(INCS) $(FLAGS) -c $< -o $@

$(SRC)/%.cpp : $(PC)/%.pc
    $(PROC) $< CODE=CPP CPP_SUFFIX=cpp INCLUDE=inc INCLUDE=/usr/include
    mv $(PC)/*.cpp $(SRC)

在gmake命令调用时,除了最后的remove命令之外,all都是预期的。输出的最后两行如下

gmake: warning:  Clock skew detected.  Your build may be incomplete.
rm src/fileName.cpp

在Solaris OS中使用GNU Make 3.80的工具,为什么会这样?

1 个答案:

答案 0 :(得分:1)

时钟偏差警告很可能是因为您正在构建的目录是使用NFS等远程系统安装的,并且远程文件系统的时钟与本地系统不同步时钟。无论如何,这与rm命令无关。

rm命令正在发生,因为src/fileName.cppintermediate file,中间文件会在构建后被make删除。

如果您不希望将其删除,只需将其声明为规则的先决条件,以便它们不再具有中间性:

f2db : $(OBJS) $(SRCS)