0

make 在我的 Makefile 上工作异常。它给出错误“没有目标。停止”。当我写 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 *~
4

2 回答 2

3

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

于 2013-11-11T21:47:56.353 回答
1

我多次遇到此错误,在许多情况下,错误非常简单,在归因于变量的值之后留下一些空间,例如在 make book where book: is the label of a sequence to LaTeX my book "name ” 在归属字段中写了“text=name”。解决方案:“text=name”名称后面不留空格。现在我确实定义了变量,将注释符号放在末尾以防止出现此错误:“text=name##”

于 2019-08-11T01:30:36.660 回答