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

时间:2012-09-24 23:11:13

标签: c++ eclipse eclipse-cdt

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

#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 但这些答案都没有帮助......

非常感谢!

11 个答案:

答案 0 :(得分:38)

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

  1. 从菜单栏中选择Project-&gt; Properties。
  2. 点击出现的对话框左侧的C / C ++ Build。
  3. 在右侧的Builder Settings选项卡下,选择Makefile生成部分下的“自动生成Makefile”。
  4. 点击OK然后再次构建。

答案 1 :(得分:14)

“all”是默认设置,即使Behaviour-&gt; Build(增量构建)选项卡没有变量。我解决了

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

答案 2 :(得分:10)

  1. 从菜单栏中选择Project-&gt; Properties。

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

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

答案 3 :(得分:7)

在C / C ++ Build中 - &gt; “构建器设置”,选择“内部构建器”(而不是“外部”构建器)。

它对我有用。

答案 4 :(得分:6)

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

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

  1. 转到项目属性&gt; C / C ++ Build&gt;行为标签。
  2. 保持构建(增量构建)已检查。
  3. 从Build(Incremental Build)旁边的文本框中删除“all”。
  4. 编译!
  5. 这让Eclipse知道你没有尝试使用名为“all”的make目标。出于某种原因,这是默认值。

答案 5 :(得分:3)

你有2个案例

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

我建议你自己创建Makefile

答案 6 :(得分:2)

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

答案 7 :(得分:2)

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

答案 8 :(得分:1)

重命名和移动源文件后,我遇到了同样的错误。所提出的解决方案都没有为我工作,我跟踪错误是Debug目录下没有更新的元文件。删除整个Debug目录并重新构建项目为我解决了这个问题。

答案 9 :(得分:0)

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

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

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

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

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

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

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

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

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

    • 新 - &gt; C ++项目
    • 选择项目类型:可执行文件 - &gt; Hello World C ++项目
      (现在在右边,在工具链下你会看到MinGW GCC)
    • 从工具链列表中选择MinGW GCC
    • 点击完成
  3. 在您的Hello World项目中,您将看到 + src 文件夹, +包含(如果是这样,您可能会很高兴。)

  4. 构建项目
  5. 跑吧!

答案 10 :(得分:0)

另一个解决方案:

我进入了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并成功。

警告:它可能会伤害一些未知的地方!备份整个项目,然后再执行此操作。因为它说“请勿编辑”。