make:没有目标。停止

时间:2013-11-09 23:59:02

标签: makefile gnu-make

make在我的Makefile上工作很奇怪。它给出了错误"没有目标。停止&#34 ;.当我写make clean时,它写道:"没有规则让目标干净。" 如果我单独编译每个文件一切都很好。 以下是代码:

CC = g++
CFLAGS = -g -Wall 
BOOSTIP = -I path/to/boost
default: abc
all: abc
abc: main.o node.o network.o   my_funs.o my_random.o
    $(CC) $(CFLAGS) $(BOOSTIP) main.o node.o network.o my_funs.o my_random.o -o abc  
main.o: main.cpp node.hpp network.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) main.cpp -o main.o
node.o: node.cpp node.hpp my_funs.hpp my_random.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) node.cpp -o node.o
network.o: network.cpp network.hpp node.hpp my_funs.hpp my_random.hpp 
    $(CC) $(CFLAGS) $(BOOSTIP) network.cpp -o network.o
my_funs.o: my_funs.cpp my_funs.hpp node.hpp my_random.hpp
    $(CC) $(CFLAGS) $(BOOSTIP) my_funs.cpp -o my_funs.o
my_random.o: my_random.cpp my_random.hpp
    $(CC) $(CFLAGS) $(BOOSTIP)  my_random.cpp -o my_random.o
clean:
    rm abc *.o *~

2 个答案:

答案 0 :(得分:2)

错误是由于线路结束不好造成的。 Makefile只有CR,因为它应该有LF。 纠正它解决了这个问题。

答案 1 :(得分:1)

我多次遇到此错误,在许多情况下,该错误非常简单,在变量赋值之后留有一些空间,例如make book中的一个实例,其中book:是LaTeX我的序列的标签图书“名称”在属性字段中写为“ text = name”。解决方案:“ text = name”名称后没有空格。现在,我确实定义了变量,将注释的符号放在最后 防止出现此错误:“ text = name ##”