Eclipse CDT无效的项目路径

时间:2008-11-21 00:09:52

标签: eclipse eclipse-cdt

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

我的应用程序编译并运行正常,除了这个之外没有一个警告。作为一个尽职尽责的开发人员,我很想解决这个问题,所以我只有干净的构建才能带来温暖的模糊。

9 个答案:

答案 0 :(得分:30)

这适用于Eclipse 3.7.2和CDT 8.0.2:

  1. 打开项目属性| C / C ++ Build |发现选项。
  2. 点击清除已发现的条目的按钮:。
  3. 重建。
  4. 这似乎是CDT 8中的一个新功能。多年来我一直有这个“无效的项目路径:重复的路径条目”问题,这显然是新提供的解决方案。

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

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

答案 1 :(得分:27)

这个问题真的很难处理。它不能很好地工作。

这适用于Eclipse 3.4.1 / CDT 5.0.1

据我所知,当您在CDT中创建“C / C ++项目”时,它将尝试自动检测您的包含路径。好主意,但实施是可怕的。

如果删除或重命名目录,则旧目录是剩余的。如果重命名项目,则旧目录是剩余的。当Eclipse无法找到该旧目录时,它会向您发出警告。

我的解决方案是完全关闭自动发现并手动管理我的包含路径。您需要这个包含路径的列表,例如ctrl-click(自动导航到定义/ functions / files / etc)和阴影#define块。它在此列表中构建索引。

以下是您需要做的事情: 右键单击项目资源管理器中的项目,然后转到属性。 转到C / C ++ Build - >发现选项 取消选中“自动发现路径和符号”

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

这应该永远解决问题。任何由于#define或#ifdef块而导致阴影不正确的情况,都是因为该文件列表已过时。如果你在#include行上得到“未解决的内容”,你也会知道列表已经过时了。

道格·谢弗(Doug Schaefer),希望谷歌对此进行索引,你找到了自己的名字,并解决了这个糟糕的实施问题。 =)

答案 2 :(得分:12)

我发现这个错误报告可以解决我的问题。我移动了一些包含路径,无法摆脱旧路径。

  

我也看到了这个问题,旧路径   永远不会删除。手动修复   你需要移动/删除文件   找到$ {projectname} .sc文件   $ {工作空间} /。元数据/ .plugins / org.eclipse.cdt.make.core

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

答案 3 :(得分:3)

使用Eclipse Luna和CDT 8.5

我通过

解决了这个问题
  1. 打开项目属性| C / C ++一般|路径和符号
  2. 查看“源位置”选项卡,我已重命名了一个目录,但未在此列表中更新。
  3. 重建

答案 4 :(得分:1)

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

  1. 打开“工作区设置 - > C / C ++ - >构建 - >设置 - >发现”
  2. 查找“CDT内置编译器设置[碎片]”
  3. 点击右侧的“清除条目”和“重置”按钮
  4. 重建项目并完成
  5. 希望这会有所帮助。

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

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

无需删除.metadata人,只需删除位于 C / C ++ General 中的所有路径 - > 路径和符号 - > Symbols 并使用click buttom替换它们,但不要手动提供路径

答案 8 :(得分:0)

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

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

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

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

另见How to change built-in C/C++ paths pointing to a deleted android-ndk-r9 installation?