44

My Eclipse CDT keeps complaining "make: *** no rule to make target all" when I am trying to compile the piece of code below:

#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!!!" << endl; // prints Hello World!!!
  return 0;
}

Anyone knows how to solve this? I have read the post with the similar title: make: *** No rule to make target `all'. Stop. Eclipse error But none of those answers help...

Thanks a lot!

4

11 回答 11

44

您需要更改项目设置,以便 Eclipse-CDT 为您管理 Makefile。

  1. 从菜单栏中选择项目-> 属性。
  2. 在出现的对话框中单击左侧的 C/C++ Build。
  3. 在右侧的 Builder Settings 选项卡下,选择 Makefile generation 部分下的“Generate Makefiles automatically”。
  4. 点击确定并再次构建。
于 2012-11-08T13:33:16.190 回答
19

“all”是默认设置,即使 Behaviour->Build (Incremental build) 选项卡没有变量。我解决了

  1. 转到项目属性 > C/C++ 构建 > 行为选项卡。
  2. 选中构建(增量构建)。
  3. 在 Build (Incremental Build) 旁边的文本框中输入“test”。
  4. 构建项目。您将看到错误消息。
  5. 回到构建(增量构建)并删除“测试”。
  6. 构建项目。
于 2013-12-09T20:12:13.623 回答
13
  1. 从菜单栏中选择项目-> 属性。

  2. 在出现的对话框中单击左侧的 C/C++ Build。

  3. 在右侧的 Builder Settings 选项卡下,检查并确保“Build location”正确。
于 2013-05-22T07:01:12.263 回答
9

在 C/C++ Build -> Builder Settings 中,选择 Internal builder(而不是 External builder)。

这个对我有用。

于 2013-04-18T15:02:28.390 回答
6

我刚刚为自己解决了这个确切的问题;甚至引用了这个问题。

我假设您没有编写 Eclipse 抱怨的“全部”规则。如果是这种情况,请执行以下步骤:

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

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

于 2013-06-17T02:51:19.233 回答
5

你有2个案例

  • 如果您自己创建 Makefile,请转到
  1. 从菜单栏中选择项目-> 属性。
  2. 在出现的对话框中单击左侧的 C/C++ Build。
  3. 禁用自动生成 makefile -> 在右侧的 Builder Settings 选项卡下,检查并确保“Build location”正确(该位置是您的 Makefile 的位置)
  • 如果你没有 Makefile -> 你需要 Eclipse DS-5 来帮助你创建 Makefile
  1. 从菜单栏中选择项目-> 属性。
  2. 在出现的对话框中单击左侧的 C/C++ Build。
  3. 启用自动生成 makefile

我建议你自己创建 Makefile

于 2016-10-13T03:47:03.133 回答
2

Project -> Clean -> Clean all Projects 然后 Project -> Build Project 为我工作(我做了取消检查自动生成生成文件,然后在执行此操作之前重新检查它)。这是通过 eclipse Juno 中的 AVR CDT 插件进行的 AVR(微处理器编程)项目。

于 2013-08-21T16:13:09.280 回答
2

有时,如果您通过 make 文件创建目标,请仔细检查所有 c 文件是否以正确的文件结构正确命名。

于 2013-07-24T14:10:44.883 回答
2

重命名和移动源文件后,我得到了同样的错误。建议的解决方案都不适合我,我跟踪错误是 Debug 目录下的元文件未更新。删除整个 Debug 目录并重新构建项目为我解决了这个问题。

于 2016-06-21T18:45:05.717 回答
0

如果上述解决方案对您不起作用 -

可能是你没有正确安装 C++ 编译器包,流程如下:(Win7 的说明,32 位/64 位)

  1. 确保正确安装了一个或多个支持的 C++ 编译器包:

    (我安装了 MinGW(如何安装视频可以在 YouTube 上找到))

    如果您选择安装 MinGW 软件包:

    • 从上面的安装页面下载 MinGW 安装程序
    • 运行 MinGW 安装程序并确保选择以下包:

      - mingw-developer-toolkit
      - mingw32-base
      - mingw32-gcc-g++
      - msys-base

    • 将 MinGW 和 MSYS bin 路径添加到 PATH 环境变量,如果您没有更改默认安装文件夹,则应添加:

    C:\MinGW\msys\1.0\bin;C:\MinGW\bin;
    • 注销并重新登录以确保启动环境变量
  2. 在eclipse中新建一个C++项目:

    • 新建 -> C++ 项目
    • 选择项目类型:可执行文件 -> Hello World C++ 项目
      (现在在右侧,在工具链下,您将看到 MinGW GCC)
    • 从工具链列表中选择 MinGW GCC
    • 点击完成
  3. 在您的 Hello World 项目中,您将看到+ src文件夹和+ Includes(如果是这样,您可能很高兴)。

  4. 构建项目
  5. 运行!
于 2015-09-06T11:40:49.177 回答
0

另一个解决方案:

我进入了 objects.mk 文件

################################################################################
# Automatically-generated file. Do not edit!
################################################################################

USER_OBJS := /home/../mylib.so

LIBS := -lstdc++fs -lGL -lGLU -lGLEW -lglut -lm -lmylib

然后没有阅读第一行。然后更改下一行。这是另一个项目的文件夹,因为我使用“复制/克隆项目”功能复制了它,这导致了我的错误。我将 myLib.so 更改为 /proper_address/reallyMyLib.so 并且它起作用了。

警告:它可能会伤害一些未知的地方!在执行此操作之前备份整个项目。因为它说“不要编辑”。

于 2018-11-27T18:08:35.663 回答