【问题标题】:make: *** No rule to make target `all'. Stop. Eclipse errormake: *** 没有将目标设为“全部”的规则。停止。日食错误
【发布时间】:2011-04-12 12:09:13
【问题描述】:

我刚刚下载了适用于 Windows 的 Eclipse CDT 开发工具包 (87MB)。我还安装了 MinGW 和 msys。 我还将它添加到 PATH:C:\msys\1.0\bin;C:\mingw\bin。然后重新启动计算机。我已经通过在 cmd 中键入“make --version”进行了检查,它可以正常工作。

但是,由于某种原因,我无法编译我的 C 项目。我没有得到二进制文件,并且在 COnsole 中只得到了以下内容:

**** Build of configuration Default for project XXX ****

make all 
make: *** No rule to make target `all'.  Stop.

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我有同样的错误你能告诉我如何解决这个错误。
  • @SamadhanMedge 底部的最后一个答案是我如何修复它。老实说,我想不起比这更好的细节了。希望您找到了解决问题的方法。
  • 感谢您的回复,我通过twokats answer解决了错误

标签: windows eclipse makefile eclipse-cdt


【解决方案1】:

为了将来参考,如果您尝试使用 makefile 导入现有项目...

如果您的 makefile 没有“全部”规则,此消息仍会弹出。使用“自动生成 Makefiles”选项应该会自动处理这个问题。如果您不想为您制作 makefile,您至少有 3 个简单的选项...

选项 1

如果您不想使用该名称的规则,请使用 twokats 的解决方案。这是一个澄清。

  1. 转到项目属性 -> C/C++ 构建 -> 行为选项卡。
  2. 选中构建(增量构建)。
  3. 从 Build (Incremental Build) 旁边的文本框中删除“all”。

这让 Eclipse 知道您没有尝试使用名为“all”的 make 目标。出于某种原因,这是默认设置。

选项 2

使用类似于 Etiennebr 的 makefile 的东西。请注意,all: $(TARGET) 行是 Eclipse 抱怨它找不到的规则。

选项 3

用您选择的规则名称替换“all”,并确保将该规则包含在您的 makefile 中。

【讨论】:

    【解决方案2】:

    仅供参考,有一种方法可以配置 CDT 构建选项。我收到了同样的错误消息(尽管我确实有一个 make 目标 - 只是没有命名为“all”)并找到了这个解决方案(对于 Galileo + CDT):

    右键单击您的项目并选择属性。将出现“属性”对话框,您应该会看到一个 C/C++ 构建 选项,您可以在其中设置特定的构建选项。突出显示该项目,将出现“属性”页面。选择您要修改的配置,然后在下面的部分中您应该会看到 2 个选项卡:Builder Settings 和 Behavior。它是您想要的 Behavior 选项卡。在本节中,您可以设置构建设置和工作台设置的首选项,包括指定目标名称(默认为“all”)或关闭自动构建。

    当我开始使用 CDT 时,这对我非常有帮助。我的源代码与构建区域是分开的,在我配置之前,不存在任何生成文件。当我配置时,我的默认目标名称是明确的“默认”,而不是“全部”。在我做任何事情之前让 Eclipse 报告我的项目中的错误很烦人。设置环境以匹配我的发展创造了奇迹。 HTH。

    【讨论】:

      【解决方案3】:

      右击项目Properties->C/C++ Build,在“Builder Settings”中勾选“Generate Makefiles automatically”选项,然后选择“Builder type”选项为“Internal builder”,然后点击ok,问题解决了!

      【讨论】:

      • 如果整个“make file generation”都是灰色的怎么办?
      【解决方案4】:

      我在这个错误上花了很多时间,现在意识到那些没有编译的项目是在我安装 MinGW 和 msys 之前创建的,所以之前没有 makefile。并且没有包含指向生成文件的链接的文件夹。这就是我无法编译它的原因。现在,当我创建新项目时,一切正常。

      不过,不知道有没有办法为之前的项目添加makefile的路径呢?

      谢谢

      【讨论】:

      • 谢谢,是的,我个人总是在 CDT(或其他 IDE)之前安装 MinGW,以便他们在安装时可以自行配置(即自动查找 MinGW)。
      【解决方案5】:

      您应该查看您的 makefile(如果缺少,请创建一个)。这是默认的makefile:

      CXXFLAGS =  -O2 -g -Wall -fmessage-length=0
      OBJS =      main.cpp
      LIBS =
      TARGET =      main.exe
      
      $(TARGET):  $(OBJS)
          $(CXX) -o $(TARGET) $(OBJS) $(LIBS)
      all:    $(TARGET)
      clean:
          rm -f $(OBJS) $(TARGET)
      

      【讨论】:

      • 感谢您的帮助。我已经修复了它,但现在不记得它是如何修复的了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 2019-09-27
      • 2016-08-14
      • 1970-01-01
      相关资源
      最近更新 更多