我有一个使用makefile构建的C项目,Eclipse经常警告"无效的项目路径:重复的路径条目",但我无法弄清楚它到底想要我做什么.我想禁用此警告并继续我的生活.
我的应用程序编译并运行正常,除了这个之外没有一个警告.作为一个尽职尽责的开发人员,我很想解决这个问题,所以我只有干净的构建才能带来温暖的模糊.
Eclipse 3.7.2和CDT 8.0.2对我有用:
打开项目属性| C/C++ Build | 发现选项.
单击"立即清除已发现的条目"按钮:
重建.
它似乎是CDT 8中的一个新功能.多年来我一直有这个"无效的项目路径:重复的路径条目"问题,这显然是新提供的解决方案.
在此之前,在C/C++ General |下有重复的路径 路径和符号| 包含标签.我无法摆脱这些.它们仅在选中Show内置值时出现,因此它们显然是以某种方式生成的.完成上述操作后,它们被替换为没有重复的集合.唯一的区别是在Assembly,GNU C和GNU C++下出现了相同的设置.以前他们是不同的集合.例如,装配的那些是空的.
到目前为止,问题还没有回来.
这个问题真的很难处理.它不能很好地工作.
这适用于Eclipse 3.4.1/CDT 5.0.1
据我所知,当您在CDT中创建"C/C++项目"时,它将尝试自动检测您的包含路径.好主意,但实施是可怕的.
如果删除或重命名目录,则旧目录是剩余的.如果重命名项目,则旧目录是剩余的.当Eclipse找不到那个旧目录时,它会给你那个警告.
我的解决方案是完全关闭自动发现并手动管理我的包含路径.您需要这个包含路径的列表,例如ctrl-click(自动导航到定义/ functions/files/etc)和阴影#define块.它在此列表中构建索引.
这是您需要做的:在项目资源管理器中右键单击您的项目并转到属性.转到C/C++ Build - > Discovery Options取消选中"自动发现路径和符号"
现在转到C/C++ General - >路径和符号您将在"包含"选项卡下看到汇编语言,C语言和C++语言以及相应的自动发现包含目录.转到所有3种语言并删除所有内容.打开您的makefile并将您的包含转录为相应的语言.项目重命名仍将导致索引器中断.$ {project_name}和其他全局变量似乎不起作用.如果您遇到问题,请使用"工作区"按钮浏览到要包含的目录,因为它似乎始终有效,但手动输入却不行.点击申请,然后确定.右键单击您的项目,转到index-> rebuild重新启动eclipse.
这应该永远解决问题.任何由于#define或#ifdef块而导致阴影不正确的情况,都是因为该文件列表已过时.如果你在#include行上得到"未解决的内容",你也会知道列表已经过时了.
Doug Schaefer,希望Google为此编制索引,你找到了你的名字,并解决了这个糟糕的实现问题.=)
我发现这个错误报告可以解决我的问题.我移动了一些包含路径,无法摆脱旧的路径.
我也见过这个问题,旧路径永远不会被删除.要手动修复文件,您需要移动/删除$ {workspace} /.metadata/.plugins/org.eclipse.cdt.make.core下的$ {projectname} .sc文件.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=206372