【问题标题】:Eclipse CDT: no rule to make target allEclipse CDT:没有规则使目标全部
【发布时间】:2012-09-16 10:52:42
【问题描述】:

当我尝试编译以下代码时,我的 Eclipse CDT 一直在抱怨“make: *** no rule to make target all”:

#include <iostream>
using namespace std;

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

有人知道如何解决这个问题吗? 我已经阅读了类似标题的帖子: make: *** No rule to make target `all'. Stop. Eclipse error 但是这些答案都没有帮助......

非常感谢!

【问题讨论】:

  • 我只是从它的网站下载 CDT 包,什么也不做。实际上,这个问题甚至在我编辑我的 test.cpp 之前就存在
  • 你为项目选择什么工具链?

标签: c++ eclipse eclipse-cdt


【解决方案1】:

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

  1. 从菜单栏中选择项目->属性。
  2. 在出现的对话框中单击左侧的 C/C++ Build。
  3. 在右侧的 Builder Settings 选项卡下,选择 Makefile generation 部分下的“Generate Makefiles automatically”。
  4. 点击 OK 并重新构建。

【讨论】:

  • “自动生成 Makefiles”对我来说是阴影!
  • 如果您使用“包含 makefile 的现有项目”构建项目,我的问题在今天早些时候通过取消选中“自动生成 makefile”得到解决。现在,在我在家工作的笔记本电脑上,我得到了完全相同的错误,但现在它无法正常工作。
【解决方案2】:

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

  1. 转到项目属性 > C/C++ 构建 > 行为选项卡。
  2. 选中构建(增量构建)。
  3. 在 Build (Incremental Build) 旁边的文本框中输入“test”。
  4. 构建项目。您将看到错误消息。
  5. 返回构建(增量构建)并删除“测试”。
  6. 构建项目。

【讨论】:

  • 哈哈!!这是非常不直观的,但有效! :0
  • 成功了。我不知道为什么。这是一个稳定的解决方案吗?它抱怨项目使用的 .so 文件。
【解决方案3】:
  1. 从菜单栏中选择项目->属性。

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

  3. 在右侧的“构建器设置”选项卡下,检查并确保“构建位置”正确。

【讨论】:

    【解决方案4】:

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

    它对我有用。

    【讨论】:

      【解决方案5】:

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

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

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

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

      【讨论】:

        【解决方案6】:

        您有 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

        【讨论】:

        • “构建位置”提示帮助了我。
        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

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

              可能是您没有正确安装 C++ 编译器包,请执行以下操作: (Win7, 32bit/64bit使用说明)

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

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

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

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

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

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

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

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

              4. 构建项目
              5. 运行它!

              【讨论】:

                【解决方案11】:

                另一种解决方案:

                我进入了 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 并且它起作用了。

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

                【讨论】:

                  猜你喜欢
                  • 2013-11-06
                  • 2012-02-20
                  • 1970-01-01
                  • 2019-09-27
                  • 2013-06-12
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多