我有一个用makefile构建的C项目,Eclipse一直警告"Invalid project path: Duplicate path entries",但我无法理解它要我做什么。我希望能够禁用此警告并继续进行。
我的应用程序编译和运行都很好,除了这个警告没有任何其他警告。作为一个有责任心的开发者,我很想解决这个问题,这样我就可以享受只有干净构建才能带来的美好感觉了。
我有一个用makefile构建的C项目,Eclipse一直警告"Invalid project path: Duplicate path entries",但我无法理解它要我做什么。我希望能够禁用此警告并继续进行。
我的应用程序编译和运行都很好,除了这个警告没有任何其他警告。作为一个有责任心的开发者,我很想解决这个问题,这样我就可以享受只有干净构建才能带来的美好感觉了。
我在使用Eclipse 3.7.2和CDT 8.0.2时,尝试如下方法解决问题:
这似乎是CDT 8中的新功能。多年来我一直遇到“Invalid project path: Duplicate path entries”问题,而这显然是新提供的解决方案。
在执行此操作之前,在C/C++ General | Paths and Symbols | Includes选项卡下存在重复的路径。我无法摆脱它们。只有在勾选Show built-in values时才会出现它们,因此它们显然以某种方式生成。在执行上述步骤后,它们被替换为不具有重复项的一组值。唯一的区别是相同的设置出现在Assembly、GNU C和GNU C++下。先前它们是不同的设置。例如,Assembly的设置为空。
到目前为止,问题尚未再次出现。
.metadata/.plugins/org.eclipse.cdt.make.core/
并删除错误路径。 - Šimon Tóth这个问题真的很难处理。它的工作效果不是很好。
适用于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 您将看到包括Assembly、C和C++语言及相应的自动发现包含目录。 转到所有3种语言并删除所有内容。 打开您的makefile,并将包含内容抄写到相应的语言中。 项目重命名仍将导致索引器崩溃。${project_name}和其他全局变量似乎不起作用。如果您遇到问题,请使用“工作区”按钮浏览到要包含的目录,因为这似乎总是有效的,但手动输入无效。 单击应用,然后单击确定。 右键单击您的项目,转到索引->重新构建 重新启动Eclipse。
这应该永久解决问题。每当由于#define或#ifdef块而错误地遮蔽某些内容时,它会修复这些问题。如果您在#include行上遇到“未解析的包含”,则也会知道该列表已过时。
Doug Schaefer,希望Google能够索引此内容,找到您的名称并修复这个可怕的实现。=)
我找到了这个错误报告来解决我的问题。我已经移动了一些包含路径,但无法摆脱旧路径。
我也遇到过这个问题,旧路径从未被删除。要手动修复文件,您需要移动/删除在${workspace}/.metadata/.plugins/org.eclipse.cdt.make.core下找到的${projectname}.sc文件。
使用Eclipse Luna和CDT 8.5
我通过以下方式解决了问题:
我刚刚发现了另一种自动重新检测路径的方法:
希望这能有所帮助。
参考: http://qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html
不需要删除 .metadata
,只需在 C/C++ General -> Paths and Symbols -> Symbols 中删除所有路径,并用单击按钮替换它们,但不要手动给出路径。
这似乎是CDT中的一个错误。
如果你真的想摆脱它,你应该尝试去掉项目路径中的空格;这是在搜索结果中建议的错误解决方法。如果这不起作用,你可以尝试打开.cproject文件——这是所有CDT设置所在的地方——并检查是否存在重复条目的实际路径。
这是针对Eclipse 4.4的一个晚回答(其中没有发现选项)。
删除项目的infoPath
文件。 Eclipse或ADT插件(不确定哪个)将重新创建它,并用正确的路径填充它。
您可以在<Eclipse workspace>/.metadata/.plugins/com.android.ide.eclipse.ndk/<project>.pathInfo
中找到项目的infoPath
文件。
我认为Eclipse或ADT插件从两个地方确定新路径:(1)在Eclipse首选项下设置的NDK目录,以及(2)Application.mk
中的路径。所有这些路径都成为Eclipse下的“内置”路径。
你应该检查一下是否手动定义了符号,Eclipse能否从你的Makefile中找到它。我的一个项目使用手写Makefile,问题是通过删除我手动添加到C/C++ General -> Paths and Symbols -> Symbols的符号解决的。