我有一个使用 makefile 构建的 C 项目,Eclipse 不断警告“无效的项目路径:重复的路径条目”,但我不知道它到底想让我做什么。我想禁用此警告并继续我的生活。
我的应用程序编译并运行良好,除此之外没有任何警告。作为一个尽职尽责的开发人员,我热衷于解决这个问题,所以我拥有只有干净构建才能带来的温暖模糊。
我有一个使用 makefile 构建的 C 项目,Eclipse 不断警告“无效的项目路径:重复的路径条目”,但我不知道它到底想让我做什么。我想禁用此警告并继续我的生活。
我的应用程序编译并运行良好,除此之外没有任何警告。作为一个尽职尽责的开发人员,我热衷于解决这个问题,所以我拥有只有干净构建才能带来的温暖模糊。
这对我来说适用于 Eclipse 3.7.2 和 CDT 8.0.2:
这似乎是 CDT 8 中的一个新功能。多年来,我一直有这个“无效的项目路径:重复的路径条目”问题,这显然是新提供的解决方案。
在这样做之前,C/C++ General | 下有重复的路径。路径和符号 | 包括选项卡。我无法摆脱这些。它们仅在选中 Show built-in values 时出现,因此它们显然是以某种方式生成的。完成上述操作后,它们被替换为没有重复的集合。唯一的区别是相同的设置出现在 Assembly、GNU C 和 GNU C++ 下。以前它们是不同的集合。例如,Assembly 的那些是空的。
到目前为止,问题还没有回来。
这个问题是一个真正的痛苦处理。它工作得不是很好。
这适用于 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,希望谷歌索引这个,你找到你的名字,然后你修复这个糟糕的实现。=)
我发现这个错误报告可以帮助我解决问题。我已经移动了一些包含路径并且无法摆脱旧路径。
我也看到过这个问题,旧路径永远不会被删除。要手动修复文件,您需要移动/删除 ${workspace}/.metadata/.plugins/org.eclipse.cdt.make.core 下的 ${projectname}.sc 文件
使用 Eclipse Luna 和 CDT 8.5
我解决了这个问题
在这里,我刚刚找到了另一种自动重新检测路径的方法:
希望这会有所帮助。
参考:http: //qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html
这似乎是 CDT 中的一个错误。
如果你真的想摆脱它,你应该尝试摆脱项目路径中的空格;这是在错误的搜索结果中提出的。如果这不起作用,您可以尝试打开 .cproject 文件 - 这是所有 CDT 设置所在的位置 - 并检查包含重复条目的实际路径。
您应该检查您是否手动定义了 eclipse 可以从您的 makefile 中找出的符号。我有一个项目,它有一个手动编写的 makefile,通过删除我手动添加到 C/C++ General -> Paths and Symbols -> Symbols 的符号解决了这个问题。
无需删除人员.metadata
,只需删除位于 C/C++ General -> Paths and Symbols -> Symbols中的所有路径,然后使用单击按钮替换它们,但不要手动提供路径
这是 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 下的“内置”路径。