我有一个使用makefile构建的C项目,Eclipse经常警告“无效的项目路径:重复的路径条目”,但我无法弄清楚它到底想要我做什么。我想禁用此警告并继续我的生活。
我的应用程序编译并运行正常,除了这个之外没有一个警告。作为一个尽职尽责的开发人员,我很想解决这个问题,所以我只有干净的构建才能带来温暖的模糊。
答案 0 :(得分:30)
这适用于Eclipse 3.7.2和CDT 8.0.2:
这似乎是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
答案 3 :(得分:3)
使用Eclipse Luna和CDT 8.5
我通过
解决了这个问题答案 4 :(得分:1)
在这里,我发现了另一种自动重新检测路径的方法:
希望这会有所帮助。
参考: 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?