2015-06-21 111 views
2

'需要。我正在使用Windows 8.1上的cygwin。我用下面的make文件make:***目标'rm'没有规则,'clean.Stop

.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 [email protected] 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. 

任何人可以找出错误?以及如何解决它? 谢谢大家!

回答

11

与目标在同一行上的:之后的标记是该目标的依赖关系。该命令必须在下一行,前面有一个标签:

clean: 
    rm *.o metropolis sparsegraph myvarious pairlist graphlist peo.graph choldc copy likelihood metropolis_fns 
+0

很酷,它的工作。谢谢! – curio1729

+0

非常感谢:) –

相关问题