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,请转到如果您没有 Makefile -> 您需要 Eclipse DS-5 来帮助您创建 Makefile从菜单栏中选择项目->属性。 在出现的对话框中单击左侧的 C/C++ Build。 禁用自动生成 makefile -> 在右侧的 Builder Settings 选项卡下,检查并确保“Build location”为 正确(该位置是您的 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:没有规则使目标全部的主要内容,如果未能解决你的问题,请参考以下文章