EclipseCDT:没有使目标全部成为目标的规则
Eclipse CDT: no rule to make target all
当我试图编译下面的代码时,我的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。
- 从菜单栏中选择项目->属性
- 在弹出的对话框中单击左侧的C/C++Build
- 在右侧的生成器设置选项卡下,选择生成文件部分下的"自动生成生成生成文件">
- 单击"确定",然后重新构建
"all"是默认设置,即使Behavior->Build(增量构建)选项卡没有变量。我以身份解决
- 转到"项目属性">"C/C++构建">"行为"选项卡
- 保持"生成(增量生成)"处于选中状态
- 在Build(Incremental Build)旁边的文本框中输入"test">
- 生成项目。您将看到错误消息
- 返回生成(增量生成)并删除"测试">
- 生成项目
-
从菜单栏中选择项目->属性。
-
在弹出的对话框中单击左侧的C/C++Build。
- 在右侧的"生成器设置"选项卡下,检查并确保"生成位置"正确
在C/C++构建->生成器设置中,选择内部生成器(而不是外部生成器)。
它对我有用。
我刚刚为自己解决了这个确切的问题;甚至提到了这个问题。
我假设您还没有编写Eclipse所抱怨的"all"规则。如果是这种情况,请采取以下步骤:
- 转到"项目属性">"C/C++构建">"行为"选项卡
- 保持"生成(增量生成)"处于选中状态
- 从"生成"(增量生成)旁边的文本框中删除"全部">
- 编译
这让Eclipse知道您没有试图使用名为"all"的make目标。出于某种原因,这是默认设置。
您有两个案例
- 如果您自己创建Makefile,请转到
- 从菜单栏中选择项目->属性
- 在弹出的对话框中单击左侧的C/C++Build
- 禁用自动生成生成文件->在右侧的"生成器设置"选项卡下,检查并确保"生成位置"correct(该位置是Makefile所在的位置)
- 如果您没有Makefile->您需要Eclipse DS-5来帮助您创建Makefile
- 从菜单栏中选择项目->属性
- 在弹出的对话框中单击左侧的C/C++Build
- 启用自动生成生成文件
我建议您通过自己的创建Makefile
有时,如果您通过make files生成目标,请仔细检查所有c文件的名称是否正确,文件结构是否正确。
Project->Clean->Clean all Projects,然后Project->Build Project对我有效(我自动执行了取消检查生成make文件,然后在执行之前重新检查它)。不过,这是通过eclipse Juno中的AVR CDT插件进行的AVR(微处理器编程)项目。
在重命名和移动源文件后,我也出现了同样的错误。没有一个建议的解决方案对我有效,我跟踪到错误是Debug目录下的元文件没有更新。删除整个调试目录并重新构建项目为我解决了问题。
如果上述解决方案不适用,那么-
可能是您没有正确安装C++编译器包,请按以下方式运行:(Win7的说明,32位/64位)
-
确保正确安装一个或多个支持的C++编译器包:
- Eclipse CDT插件(安装程序页面)(安装程序指南)
- MinGW软件包(安装页面)
- Cygwin软件包(安装页面)
(我安装了MinGW(如何安装视频可以在YouTube上找到)
如果您选择安装MinGW软件包:
- 从上面的安装页面下载MinGW安装程序
-
运行MinGW安装程序并确保选择以下软件包:
-mingw开发人员工具包
-mingw32-base
-msys base -
将MinGW和MSYS bin路径添加到PATH环境变量中,如果您没有更改默认安装文件夹,则应添加:
C:MinGWmsys1.0bin;C:MinGWbin;
- 注销并重新登录以确保环境变量启动
-
在eclipse中创建一个新的C++项目:
- 新建->C++项目
- 选择项目类型:可执行文件->Hello World C++项目
(现在在右边的工具链下,您将看到MinGW GCC) - 从工具链列表中选择MinGW GCC
- 完成
-
在Hello World项目中,您将看到+src文件夹和+Includes(如果是这样,您可能很乐意去)。
- 生成项目
- 快跑
另一个解决方案:
我进入了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,它成功了。
警告:它可能会危害一些未知的地方!在此之前备份整个项目。因为上面写着"不要编辑"。
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++A*算法并不总是在路径中具有目标节点
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 为测试目标创建具有不同源文件夹的文件
- 使用源向量作为目标
- 是否可以用C++/WinRT将windows 10.0.14393作为目标
- 在 CMake 中为每个目标设置编译器/链接器标志
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 CMake 中对目标依赖项进行分组?
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 如何为包含头文件的目标编写生成文件?
- 线性优化目标函数中的绝对值
- 制作文件:没有规则来制定目标:如何设置正确的规则?
- 字符串函数在目标C++上运行时C++返回空
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- 请求最简单的 OpenMP 目标 GPU 示例
- 没有要成为目标的规则:代码块
- EclipseCDT:没有使目标全部成为目标的规则
- Makefile:没有规则可以成为目标.停止
- Qt创建者中的通用c++项目-没有使目标成为目标的规则