Eclipse CDT:没有规则使目标全部

Posted

技术标签:

【中文标题】Eclipse CDT:没有规则使目标全部【英文标题】:Eclipse CDT: no rule to make target all 【发布时间】: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 之前就存在 你为项目选择什么工具链? 【参考方案1】:

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

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

【讨论】:

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

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

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

【讨论】:

哈哈!!这是非常不直观的,但有效! :0 成功了。我不知道为什么。这是一个稳定的解决方案吗?它抱怨项目使用的 .so 文件。【参考方案3】:

    从菜单栏中选择项目->属性。

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

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

【讨论】:

【参考方案4】:

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

它对我有用。

【讨论】:

【参考方案5】:

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

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

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

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

【讨论】:

【参考方案6】:

您有 2 个案例

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

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

    Eclipse CDT 插件 (Installers page) (Installer guide) MinGW 包 (Install Page) Cygwin 包 (Install page)

    (我安装了 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;
    注销并重新登录以确保环境变量已启动

    在eclipse中新建一个C++项目:

    新 -> C++ 项目 选择项目类型:可执行文件 -> Hello World C++ 项目 (现在在右侧,在 Toolchains 下,您将看到 MinGW GCC) 从工具链列表中选择 MinGW GCC 完成任务

    在你的 Hello World 项目中,你会看到 + src 文件夹和 + Includes(如果是这样,你可能很高兴)。

    构建项目 运行它!

【讨论】:

【参考方案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 并且它起作用了。

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

【讨论】:

以上是关于Eclipse CDT:没有规则使目标全部的主要内容,如果未能解决你的问题,请参考以下文章

Recursive makefile 没有规则使目标“全部”。停止

Eclipse cdt mingw配置记录

OpenCV 和 Eclipse CDT

Eclipse搭建c环境(CDT)二

Eclipse/CDT 漂亮的打印错误

Linux配置eclipse实践