44

我有一个使用 makefile 构建的 C 项目,Eclipse 不断警告“无效的项目路径:重复的路径条目”,但我不知道它到底想让我做什么。我想禁用此警告并继续我的生活。

我的应用程序编译并运行良好,除此之外没有任何警告。作为一个尽职尽责的开发人员,我热衷于解决这个问题,所以我拥有只有干净构建才能带来的温暖模糊。

4

9 回答 9

31

这对我来说适用于 Eclipse 3.7.2 和 CDT 8.0.2:

  1. 打开项目属性 | C/C++ 构建 | 发现选项。
  2. 单击立即清除已发现条目的按钮:。
  3. 重建。

这似乎是 CDT 8 中的一个新功能。多年来,我一直有这个“无效的项目路径:重复的路径条目”问题,这显然是新提供的解决方案。

在这样做之前,C/C++ General | 下有重复的路径。路径和符号 | 包括选项卡。我无法摆脱这些。它们仅在选中 Show built-in values 时出现,因此它们显然是以某种方式生成的。完成上述操作后,它们被替换为没有重复的集合。唯一的区别是相同的设置出现在 Assembly、GNU C 和 GNU C++ 下。以前它们是不同的集合。例如,Assembly 的那些是空的。

到目前为止,问题还没有回来。

于 2012-06-01T18:36:27.140 回答
27

这个问题是一个真正的痛苦处理。它工作得不是很好。

这适用于 Eclipse 3.4.1 / CDT 5.0.1

据我所知,当您在 CDT 中创建“C/C++ 项目”时,它会尝试自动检测您的包含路径。好主意,但实施起来很糟糕。

如果您删除或重命名一个目录,旧目录将被保留。如果重命名项目,旧目录将保留。当 Eclipse 找不到那个旧目录时,它会给你那个警告。

我的解决方案是完全关闭自动发现并手动管理我的包含路径。您需要此包含路径列表,用于 ctrl-click(自动导航到定义/函数/文件/等)和遮蔽 #define 块。它从这个列表中建立索引。

这是您需要做的:在项目资源管理器中右键单击您的项目并转到属性。转到 C/C++ Build -> Discovery Options 取消选中“自动发现路径和符号”

现在转到 C/C++ General -> Paths and Symbols 您将在 Includes 选项卡下看到 Assembly、C 和 C++ 语言以及相应的自动发现的包含目录。转到所有 3 种语言并删除所有内容。打开您的 makefile 并将您的包含转录成相应的语言。项目重命名仍会导致索引器中断。${project_name} 和其他全局变量似乎不起作用。如果您遇到问题,请使用“工作区”按钮浏览到您想要包含的目录,因为这似乎总是有效,但手动输入却不行。点击应用,然后确定。右键单击您的项目,转到 index->​​rebuild 重新启动 eclipse。

这应该永远解决问题。任何时候由于#define 或#ifdef 块而不正确地遮盖了某些内容,这是因为该文件列表已过时。如果您在#include 行上获得“未解决的包含”,您也会知道该列表已过时。

Doug Schaefer,希望谷歌索引这个,你找到你的名字,然后你修复这个糟糕的实现。=)

于 2009-01-05T19:23:24.647 回答
13

我发现这个错误报告可以帮助我解决问题。我已经移动了一些包含路径并且无法摆脱旧路径。

我也看到过这个问题,旧路径永远不会被删除。要手动修复文件,您需要移动/删除 ${workspace}/.metadata/.plugins/org.eclipse.cdt.make.core 下的 ${projectname}.sc 文件

https://bugs.eclipse.org/bugs/show_bug.cgi?id=206372

于 2009-04-23T19:28:38.890 回答
6

使用 Eclipse Luna 和 CDT 8.5

我解决了这个问题

  1. 打开项目属性 | C/C++ 通用 | 路径和符号
  2. 查看 Source Location 选项卡,我已经重命名了一个目录,并且它没有在此列表中更新。
  3. 重建
于 2015-04-10T04:27:48.620 回答
1

在这里,我刚刚找到了另一种自动重新检测路径的方法:

  1. 打开“工作区设置 -> C/C++ -> 构建 -> 设置 -> 发现”
  2. 找到“CDT 内置编译器设置 [Shard]”
  3. 单击右侧的“清除条目”和“重置”按钮
  4. 重建项目并完成

希望这会有所帮助。

参考:http: //qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html

于 2013-10-05T02:35:59.257 回答
0

这似乎是 CDT 中的一个错误。

如果你真的想摆脱它,你应该尝试摆脱项目路径中的空格;这是在错误的搜索结果中提出的。如果这不起作用,您可以尝试打开 .cproject 文件 - 这是所有 CDT 设置所在的位置 - 并检查包含重复条目的实际路径。

于 2008-11-21T00:42:52.027 回答
0

您应该检查您是否手动定义了 eclipse 可以从您的 makefile 中找出的符号。我有一个项目,它有一个手动编写的 makefile,通过删除我手动添加到 C/C++ General -> Paths and Symbols -> Symbols 的符号解决了这个问题。

于 2009-09-06T17:15:08.303 回答
0

无需删除人员.metadata,只需删除位于 C/C++ General -> Paths and Symbols -> Symbols中的所有路径,然后使用单击按钮替换它们,但不要手动提供路径

于 2012-08-23T09:50:08.880 回答
0

这是 Eclipse 4.4 的最新答案(它没有发现选项)。

删除项目的infoPath文件。Eclipse 或 ADT 插件(不确定是哪个)将重新创建它,并使用正确的路径填充它。

您可以在 中找到该项目的infoPath文件<Eclipse workspace>/.metadata/.plugins/com.android.ide.eclipse.ndk/<project>.pathInfo

认为Eclipse 或 ADT 插件从两个地方确定新路径:(1)在 Eclipse 首选项下设置的 NDK 目录,以及(2)Application.mk. 所有这些路径都成为 Eclipse 下的“内置”路径。

另请参阅如何更改指向已删除的 android-ndk-r9 安装的内置 C/C++ 路径?

于 2015-01-14T06:12:12.257 回答