Eclipse CDT:没有规则可以全部制作目标

Mar*_* Z. 38 c++ eclipse eclipse-cdt

当我尝试编译下面的代码时,我的Eclipse CDT一直在抱怨"make:***没有规则来制作目标":

#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!!!" << endl; // prints Hello World!!!
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

谁知道如何解决这个问题?我已经阅读了类似标题的帖子: make:***没有规则可以使目标"全部".停止.Eclipse错误 但这些答案都没有帮助......

非常感谢!

Sco*_*oPi 39

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

  1. 从菜单栏中选择Project-> Properties.
  2. 单击出现的对话框左侧的C/C++ Build.
  3. 在右侧的"构建器设置"选项卡下,选择"Makefile生成"部分下的"自动生成Makefile".
  4. 点击OK然后重新构建.

  • "自动生成Makefile"对我来说是阴影! (35认同)

小智 15

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

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

  • 大声笑!!这是非直观的,但仍然工作!:0 (2认同)
  • 有效。我不知道为什么。这是一个稳定的解决方案吗?它抱怨项目使用的 .so 文件。 (2认同)

rap*_*vis 11

  1. 从菜单栏中选择Project-> Properties.

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

  3. 在右侧的"构建器设置"选项卡下,检查并确保"构建位置"正确无误.


wal*_*l-e 8

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

这个对我有用.


drm*_*elr 6

我刚刚为自己解决了这个问题; 甚至引用了这个问题.

我假设你还没有写出Eclipse抱怨的"全部"规则.如果是这种情况,请执行以下步骤:

  1. 转到项目属性> C/C++构建>行为选项卡.
  2. 保持Build(增量构建)已检查.
  3. 从Build(Incremental Build)旁边的文本框中删除"all".
  4. 编译吧!

这让Eclipse知道你没有尝试使用名为"all"的make目标.出于某种原因,这是默认值.


小智 5

你有2个案例

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

我建议你自己创建 Makefile