从 Eclipse CDT 项目中完全排除某些目录
Posted
技术标签:
【中文标题】从 Eclipse CDT 项目中完全排除某些目录【英文标题】:Completely exclude certain directories from Eclipse CDT project 【发布时间】:2011-11-21 20:51:26 【问题描述】:我正在使用在 Eclipse 之外构建和运行的 C++ 代码库。
我用它制作了一个 Eclipse 项目,我只是使用 Eclipse 来浏览/编辑代码。
但是,我无法弄清楚如何完全从中完全排除某些目录,例如 build/。它们不仅应该在构建期间被排除在外,而且在“刷新工作空间”期间应该被排除,这似乎经常被触发。举个例子,我的工作区是
d:\workspace
它有类似的目录
source/
build/
..
在启动期间,Eclipse 会自动拾取工作空间内的所有目录。但是,我希望 Eclipse 完全排除 build/
。
我的代码在远程机器上,所以“刷新工作区”会减慢速度。
【问题讨论】:
这正是我一直在寻找的......它类似于 Visual Studio 中的项目功能的排除。是的,你说得对,我认为它们提供的仅与从构建中排除一样好,这很烦人,因为我仍然可以看到已删除形式的文件。 您希望排除有什么影响? 密切相关:How to filter resource folders in a certain subpath of the project only? 也非常相关(我自己的问答我刚刚添加):How to exclude all parts of a folder in Eclipse except for a few specific sub-folders within it 【参考方案1】:您可以通过添加Resource filters 来实现。将 Exclude All 资源过滤器类型添加到项目的根文件夹。另见this answer。
【讨论】:
要完成此操作,您可能需要右键单击项目文件夹,选择属性,然后搜索resource filters
有关如何过滤特定的相对子文件夹的详细说明,请参阅 ***.com/questions/14221589/…。
你能补充一些详细的例子吗?我发现按名称或相对路径排除或包含子文件夹不可能,我已经花了 小时 尝试。
我想通了。这几乎是不可能的,因为似乎存在一些相当麻烦的资源过滤器错误。但是,我有一个解决方法,并在我的回答中仔细记录了它:How to exclude all parts of a folder in Eclipse except for a few specific sub-folders within it【参考方案2】:
我非常坚定地认为,此类问题的所有答案都需要包含它们经过测试的版本——因为就像 Eclipse 中的大多数东西一样,这已经逐渐改变了。在 Eclipse Neon.3 (4.6.3) 中,您可以更直接地执行此操作。注意:排除的目录将不再显示在项目资源管理器树 AT全部。如果这会成为问题,请选择其他技术! 否则,请执行以下操作: 1. 左键单击 Project Explorer 树中的项目根以确保正确的上下文(您“不应该这样做”——就像 Eclipse 中的很多事情一样)。 2. 在 Project Explorer 树中右键单击要排除的文件夹。 3. 选择“资源配置...”子菜单。 4. 选择“从构建中排除”。 5. 在 Project Explorer 中右键单击项目根目录。 6. 选择“索引”子菜单。 7. 选择“重建”。 如果您因为得到重复的符号而尝试这样做,请验证这是否解决了您的问题: 1. 打开一个引用符号的文件,该符号正在获取重复定义。 2.在实码中左键点击实名实字。 3. 按 F3。 4. 验证您是否立即转到您认为正确的声明,您会看到一个仅包含该条目及其祖先的列表。 5. 支持这个答案,如果您发现它适用于较新的版本,请回复。
【讨论】:
【参考方案3】:几乎一样好的快速修复(在减少 Eclipse ***旋转方面)是在(右键单击)属性中将有问题的文件夹标记为 Derived。
如果您随后想要对某些内容使用文本搜索操作并且需要包含标记为 Derived 的内容 - 您需要在搜索中明确“包含 Derived”。
【讨论】:
谢谢,这对我有帮助!出于某种原因,在我的工作区中创建了一个目录build
。我必须始终从所有搜索结果中删除它,但现在它已经消失了。以上是关于从 Eclipse CDT 项目中完全排除某些目录的主要内容,如果未能解决你的问题,请参考以下文章
在 Eclipse CDT 中将项目类型从“可执行”更改为“静态库”
在 Eclipse/CDT 中使用自定义 Makefile [重复]