我在 Windows 8.1 上使用 cygwin。我使用了下面的 make 文件
.SUFFIXES : .o .C
CFLAGS = -g2
CC =g++ ${CFLAGS}
LIBRARIES = -lm
.C.o :
${CC} -c $<
SOURCE-FILES = sparsegraph.C myvarious.C pairlist.C graphlist.C peo.graph.C choldc.C copy.C metropolis_fns.C likelihood.C metropolis.C
OBJECT-FILES = sparsegraph.o myvarious.o pairlist.o graphlist.o peo.graph.o choldc.o copy.o metropolis_fns.o likelihood.o metropolis.o
HEADER-FILES = sparsegraph.h pairlist.h graphlist.h myvarious.h chol.h peo.graph.h copy.h likelihood.h metropolis.h
EXECUTABLES = metropolis
PROGRAMS = metropolis sparsegraph myvarious pairlist graphlist peo.graph choldc copy likelihood metropolis_fns
metropolis: ${OBJECT-FILES}
${CC} -o $@ metropolis.o metropolis_fns.o sparsegraph.o myvarious.o pairlist.o graphlist.o peo.graph.o choldc.o copy.o likelihood.o ${LIBRARIES}
metropolis.o: metropolis.C ${HEADER-FILES}
metropolis_fns.o: metropolis_fns.C ${HEADER-FILES}
sparsegraph.o: sparsegraph.C ${HEADER-FILES}
myvarious.o: myvarious.C ${HEADER-FILES}
pairlist.o: pairlist.C ${HEADER-FILES}
graphlist.o: graphlist.C ${HEADER-FILES}
peo.graph.o: peo.graph.C ${HEADER-FILES}
choldc.o: choldc.C chol.h
copy.o: copy.C ${HEADER-FILES}
clean:rm *.o metropolis sparsegraph myvarious pairlist graphlist peo.graph choldc copy likelihood metropolis_fns
然后当我使用
make -f Makefile clean
它抛出以下输出错误
make: *** No rule to make target 'rm', needed by 'clean'.Stop.
有人能找出错误吗?以及如何解决? 谢谢大家!
最佳答案
与目标位于同一行的 :
之后的标记是该目标的依赖项。命令必须在下一行,前面有一个制表符:
clean:
rm *.o metropolis sparsegraph myvarious pairlist graphlist peo.graph choldc copy likelihood metropolis_fns
关于c++ - 使'clean.Stop需要: *** No rule to make target 'rm' ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30962134/