2

在 Eclipse CDT 4.2 中,我只想包含几个文件夹作为资源。例如“/root”是创建项目“myproject”的地方。我只想包括这些文件夹并排除任何其他文件夹。

  • /root/A
  • /root/B
  • /root/C/D

我知道这可以在

   Project -> Resource -> Resource Filters

但是那里的用户界面让我感到困惑。

  • 位置和相对路径有什么区别。
  • “递归应用”复选框也让我有些困惑。
  • 有一种方法可以指定正则表达式,但是如果我放置一个以 * 开头的正则表达式,例如 */root/A/* 或 */myproject/A/*,它会给出错误提示“在索引 0 附近悬挂元字符”。

简而言之,由于这些看似令人困惑的选项(对我而言),我还无法达到上述要求。请澄清

PS:源码的方式在于linux我的文件系统和专有的源代码控制系统,它们都是链接。不确定这是否重要,但只是提一下。

例如 root/A/file.c --> [链接到 file.c 的版本控制系统]

4

1 回答 1

6
  • 位置和相对路径有什么区别。

位置是完整路径(例如/home/user123/workspcae/proj1/src/foo.c),其中相对路径只是项目目录中的一部分(例如src/foo.c

  • “递归应用”复选框也让我有些困惑。

表示该规则不仅适用于 projet-root,还适用于任何子目录。即匹配的规则在src/*.c没有“递归应用”的情况下不会做任何事情,因为它只匹配子目录中的文件src

  • 有一种方法可以指定正则表达式,但如果我放置一个以 * 开头的正则表达式,例如/root/A//myproject/A/,它会给出错误提示“在索引 0 附近悬挂元字符”。

您使用的是通配符,而不是正则表达式。正则表达式要复杂得多,星号表示前一个“对象”可能出现零次或多次。如果没有这个先前的对象,Eclipse 会感到困惑。只是不要检查正则表达式框,它应该可以按预期工作,或者在星号前添加一个点,表示任何字符。

要解决您的问题,请执行以下操作:

项目 -> 属性 -> 资源 -> 资源过滤器

  • 仅包括:
    • 文件夹:(名称匹配)a
    • 文件夹:(名称匹配)b
    • 文件夹:(名称匹配)c
  • 排除所有:
    • 文件:(名称匹配)*

文件夹 c -> 属性 -> 资源 -> 资源过滤器

  • 仅包括:
    • 文件夹:(名称匹配)d
  • 排除所有:
    • 文件:(名称匹配)*
于 2013-01-25T15:24:48.493 回答