从Eclipse CDT项目中完全排除某些目录

28
我正在处理一个在Eclipse之外构建和运行的C++代码库。
我将其制作成了一个Eclipse项目,只是使用Eclipse浏览/编辑代码。
然而,我无法完全排除某些目录(如build/)使它们完全不受影响。它们不仅应该在构建期间被排除,还应该在“刷新工作区”期间被排除,这似乎会经常触发。举个例子,我的工作区是:
d:\workspace

它有像这样的目录

source/
build/
..

在启动时,Eclipse 会自动获取工作区内的所有目录。然而,我希望Eclipse完全排除 build/ 目录。

由于我的代码在远程机器上,因此“刷新工作区”会使事情变慢。


这正是我一直在寻找的...它类似于Visual Studio中的“从项目中排除”功能。是的,你说得对,我认为他们提供的只是像从构建中排除那样好的功能,这很让人恼火,因为我仍然可以看到用删除线标记的文件。 - FUD
你希望排除会产生什么影响? - Ciro Santilli OurBigBook.com
也非常相关(我刚刚添加的我的问题和答案):如何在Eclipse中排除文件夹的所有部分,除了其中几个特定的子文件夹 - Gabriel Staples
3个回答

29

您可以通过添加资源过滤器来实现。在项目的根目录下添加排除所有的资源过滤器类型。另请参见此答案


5
为了完成这个任务,你可能需要右键点击你的项目文件夹,选择属性,然后搜索“资源过滤器”。 - AturSams
2
请参考https://dev59.com/C2Yq5IYBdhLWcg3wwDRA,了解如何过滤特定的相对子文件夹。 - zpon
你能添加一些详细的例子吗?我发现通过名称或相对路径排除或包含子文件夹是不可能的,我已经花了几个小时尝试了。 - Gabriel Staples
我已经想出来了。由于存在一些相当棘手的资源过滤器错误,这似乎大多是不可能的。但是,我有一个解决方法,并在我的答案中仔细记录了它:如何在Eclipse中排除文件夹的所有部分,除了其中的一些特定子文件夹 - Gabriel Staples

4
我非常坚定地认为,像这样的问题的所有答案都需要包括它们被测试的版本--因为,像Eclipse中的大多数事物一样,这已经逐渐发生了变化。在Eclipse Neon.3 (4.6.3)中,您可以更直接地执行此操作。

注意:排除的目录将不再在项目资源管理器树中显示。
如果这会造成问题,请选择其他技术!


否则,请按照以下步骤进行:

1. 在项目资源管理器树中左键单击项目根以确保正确的上下文(您“不应该需要这样做”--就像Eclipse中的许多事情一样)。
2. 在项目资源管理器树中右键单击要排除的文件夹。
3. 选择“资源配置...”子菜单。
4. 选择“从构建中排除”。
5. 在项目资源管理器中右键单击项目根。
6. 选择“索引”子菜单。
7. 选择“重建”。

如果您之前尝试这样做是因为出现了重复符号,请验证是否已解决问题:

1. 打开引用获取重复定义的符号的文件。
2. 左键单击实际代码中实际名称的实际字符。
3. 按F3键。
4. 验证您是否立即转到您认为正确的声明,或者看到一个只包括该条目及其祖先的列表。
5. 如果您发现它适用于更新版本,请点赞此答案并回复。

2
一个快速修复的方法(几乎可以达到减少Eclipse旋转的效果)是将相关的文件夹标记为“派生”,在右键属性中可操作。
但是需要注意,如果您随后想要使用文本搜索操作来搜索标记为"派生"的内容,请务必在搜索时明确指定“包含派生”选项。

1
谢谢,这对我很有帮助!由于某种原因,在我的工作区中创建了一个名为“build”的目录。我必须始终从所有搜索结果中删除它,但现在它已经消失了。 - Juha M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接