Eclipse CDT无效的项目path

我有一个使用makefile构build的C项目,Eclipse经常警告“无效的项目path:重复的path条目”,但我无法弄清楚它到底想要我做什么。 我想禁用这个警告,继续我的生活。

我的应用程序编译和运行良好,没有一个警告,除了这一个。 作为一个认真的开发人员,我热衷于解决这个问题,所以我只有一个干净的构build可以带来温暖的模糊。

这对于Eclipse 3.7.2和CDT 8.0.2来说很合适:

  1. 打开项目属性| C / C ++构build| 发现选项。
  2. 点击button清除发现的条目现在:。
  3. 重build。

这似乎是CDT 8中的一个新function。多年来,我有这个“无效的项目path:重复的path条目”的问题,这显然是新提供的解决scheme。

在执行此操作之前,在C / C ++ General |下有重复的path path和符号| 包含选项卡。 我无法摆脱这些。 它们只在Show内置值被选中时出现,所以它们显然是以某种方式生成的。 完成上述操作后,它们被replace为没有重复的集合。 唯一的区别是在Assembly,GNU C和GNU C ++下出现了相同的设置。 以前他们是不同的集合。 举例来说,Assembly的那些是空的。

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

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

这适用于Eclipse 3.4.1 / CDT 5.0.1

从我所知道的,当你在CDT中创build一个“C / C ++项目”时,它会尝试自动检测你的包含path。 好主意,但实施是可怕的。

如果您删除或重命名目录,旧的目录是剩余的。 如果您重命名该项目,旧的目录是剩余的。 当Eclipse找不到那个旧的目录时,会给你这个警告。

我的解决scheme是完全closures自动发现并手动pipe理我的包含path。 你需要这个包含path的列表,例如ctrl-click(自动导航到定义/ functions / files / etc)和阴影#define块。 它build立了这个列表的索引。

以下是您需要做的事情:在项目浏览器中右键单击您的项目,然后转到属性。 转到C / C ++构build – >发现选项取消选中“自动发现path和符号”

现在进入C / C ++常规 – >path和符号在Include选项卡下可以看到Assembly,C和C ++语言以及相应的自动发现包含目录。 去所有3种语言,删除一切。 打开你的makefile,把你的包含转换成相应的语言。 项目重命名仍然会导致索引器中断。 $ {project_name}和其他全局variables似乎不起作用。 如果您遇到问题,请使用“工作区”button浏览到您想要包含的目录,因为这似乎始终工作,但手动input不会。 点击应用,然后确定。 右键点击你的项目,进入index->​​ rebuild重启eclipse。

这应该永远解决事情。 任何时候由于#define或#ifdef块的原因都会有不正确的内容,这是因为文件列表已经过期。 如果你在#include行中得到“未解决的包含”,你也会知道该列表已经过时。

道格·谢弗(Doug Schaefer)希望谷歌能够为此编制索引,find自己的名字,然后解决这个可怕的问题。 =)

我发现这个错误报告来帮助我的问题。 我移动了一些包含path,无法摆脱旧的path。

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

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

使用Eclipse Luna和CDT 8.5

我通过解决这个问题

  1. 打开项目属性| C / C ++常规| path和符号
  2. 看看源位置选项卡,我已经重命名了一个目录,并没有在这个列表中更新。
  3. 重build

在这里我只find另一种自动重新检测path的方法:

  1. 打开“工作区设置 – > C / C ++ – >生成 – >设置 – >发现”
  2. 查找“CDT内置编译器设置[碎片]”
  3. 点击右侧的“清除条目”和“重置”button
  4. 重build项目并完成

希望这会有所帮助。

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

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

如果你真的想摆脱它,你应该尝试摆脱项目path中的空间; 这是在search结果中build议的错误。 如果这不起作用,可以尝试打开.cproject文件 – 这是所有CDT设置所在的位置,并检查包含重复条目的实际path。

你应该检查你是否已经手动定义了一个可以从你的makefile中找出eclipse的符号。 我有一个项目,有一个手动编写的生成文件,并通过删除我手动添加到C / C + +一般 – >path和符号 – >符号的符号解决了问题。

没有必要删除.metadata球员,只需删除位于C / C + +一般 – > path和符号 – > 符号的所有path,并使用单击buttonreplace它们,但不要手动给path

这是Eclipse 4.4的一个较晚的答案(没有发现选项)。

删除项目的infoPath文件。 Eclipse或ADT插件(不知道哪个)会重新创build它,并填充正确的path。

您可以在<Eclipse workspace>/.metadata/.plugins/com.android.ide.eclipse.ndk/<project>.pathInfofind项目的infoPath文件。

认为 Eclipse或ADT插件可以从两个地方确定新的path:(1)Eclipse偏好设置下的NDK目录,以及(2) Application.mkpath。 所有这些path都成为Eclipse下的“内置”path。

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