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的工具,为什么会这样?
答案 0 :(得分:1)
时钟偏差警告很可能是因为您正在构建的目录是使用NFS等远程系统安装的,并且远程文件系统的时钟与本地系统不同步时钟。无论如何,这与rm
命令无关。
rm
命令正在发生,因为src/fileName.cpp
是intermediate file,中间文件会在构建后被make删除。
如果您不希望将其删除,只需将其声明为规则的先决条件,以便它们不再具有中间性:
f2db : $(OBJS) $(SRCS)