【问题标题】:make: No targets. Stopmake:没有目标。停止
【发布时间】:2019-08-11 09:30:36
【问题描述】:

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 *~

【问题讨论】:

  • 我在运行您的 makefile 时没有收到该错误。我不得不将每行开头的空格更改为制表符(我怀疑您也有,但他们只是没有在这里复制)。我得到“没有规则来制作目标 main.cpp”,如果我将 main.cpp 放在我的目录中应该没问题。你不需要 "default: abc" 因为 make 默认会运行第一个目标,所以 all 和 default 是一样的。
  • 你使用什么版本的 Make?你试过一个非常简单的makefile吗?
  • @Flexo 我非常不同意删除我的帖子。事实上,我的回答完全正确。按照我给出的路线,这个问题得到了准确的回答。如果只是“查一下”,那就不合适了。但是,我给出了精确的指示以找到确切的答案。从该链接重复该部分是没有意义的。例如,那里的内容可能会改变。但是把读者指向它,是完全正确的。
  • @MarkGaleck:我同意 Flexo,我发现您的评论令人费解。您认为引用手册是没有意义的,因为手册可能会在以后进行修订,但是依赖当前 Google 排名的手册的方向更好??无论如何,手册的那部分并没有真正解释如何解决问题。我已经知道错误消息的含义,但我不知道为什么 Piotr Górski 会得到它。
  • 感谢大家的帮助。我设法纠正了错误。这是 Windows/Unix 行结束的问题...我只有 CR,因为它应该是 LF。 @Beta:我设法编写了简单的makefile,它工作正常,这就是为什么我考虑可能的差异并检查了不可见的迹象。感谢您的想法!

标签: makefile gnu-make


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多