EclipseCDT:没有使目标全部成为目标的规则

Eclipse CDT: no rule to make target all

本文关键字:目标 全部成为 规则 EclipseCDT      更新时间:2023-10-16

当我试图编译下面的代码时,我的Eclipse CDT一直抱怨"make:***没有规则使目标全部成为目标":

#include <iostream>
using namespace std;
int main() {
cout << "Hello World!!!" << endl; // prints Hello World!!!
return 0;
}

有人知道怎么解决这个问题吗?我读过类似标题的帖子:make:***没有将目标设置为`all';的规则;。停止Eclipse错误但这些答案都无济于事。。。

非常感谢!

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

  1. 从菜单栏中选择项目->属性
  2. 在弹出的对话框中单击左侧的C/C++Build
  3. 在右侧的生成器设置选项卡下,选择生成文件部分下的"自动生成生成生成文件">
  4. 单击"确定",然后重新构建

"all"是默认设置,即使Behavior->Build(增量构建)选项卡没有变量。我以身份解决

  1. 转到"项目属性">"C/C++构建">"行为"选项卡
  2. 保持"生成(增量生成)"处于选中状态
  3. 在Build(Incremental Build)旁边的文本框中输入"test">
  4. 生成项目。您将看到错误消息
  5. 返回生成(增量生成)并删除"测试">
  6. 生成项目
  1. 从菜单栏中选择项目->属性。

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

  3. 在右侧的"生成器设置"选项卡下,检查并确保"生成位置"正确

在C/C++构建->生成器设置中,选择内部生成器(而不是外部生成器)。

它对我有用。

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

我假设您还没有编写Eclipse所抱怨的"all"规则。如果是这种情况,请采取以下步骤:

  1. 转到"项目属性">"C/C++构建">"行为"选项卡
  2. 保持"生成(增量生成)"处于选中状态
  3. 从"生成"(增量生成)旁边的文本框中删除"全部">
  4. 编译

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

您有两个案例

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

我建议您通过自己的创建Makefile

有时,如果您通过make files生成目标,请仔细检查所有c文件的名称是否正确,文件结构是否正确。

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

在重命名和移动源文件后,我也出现了同样的错误。没有一个建议的解决方案对我有效,我跟踪到错误是Debug目录下的元文件没有更新。删除整个调试目录并重新构建项目为我解决了问题。

如果上述解决方案不适用,那么-

可能是您没有正确安装C++编译器包,请按以下方式运行:(Win7的说明,32位/64位)

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

    • Eclipse CDT插件(安装程序页面)(安装程序指南)
    • MinGW软件包(安装页面)
    • Cygwin软件包(安装页面)

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

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

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

      -mingw开发人员工具包
      -mingw32-base
      -msys base

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

    C:MinGWmsys1.0bin;C:MinGWbin;
    • 注销并重新登录以确保环境变量启动
  2. 在eclipse中创建一个新的C++项目:

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

  4. 生成项目
  5. 快跑

另一个解决方案:

我进入了objects.mk文件

################################################################################
# Automatically-generated file. Do not edit!
################################################################################
USER_OBJS := /home/../mylib.so
LIBS := -lstdc++fs -lGL -lGLU -lGLEW -lglut -lm -lmylib

然后没有读第一行。然后更改了下一行。这是另一个项目的文件夹,因为我使用"复制/克隆项目"功能复制了这个文件夹,这导致了我的错误。我将myLib.so更改为/propert_address/rereallyMyLib.so,它成功了。

警告:它可能会危害一些未知的地方!在此之前备份整个项目。因为上面写着"不要编辑"。