Eclipse CDT仅指定一些文件夹作为资源

Rat*_*Pai 2 eclipse-cdt

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

  • /根/ A
  • /根/ B
  • /根/ C/d

我知道这可以做到

   Project -> Resource -> Resource Filters
Run Code Online (Sandbox Code Playgroud)

但是UI让我感到困惑.

  • 位置和相对路径之间有什么区别.
  • 复选框"递归应用"也让我感到困惑.
  • 有一种方法可以指定正则表达式,但是如果我将一个正则表达式以*开头,如*/root/A/*或*/myproject/A/*,则会出现错误,说"在索引0附近悬挂元字符".

总之,由于这些看似令人困惑的选择(对我而言),我还无法在上面实现.请澄清

PS:源代码在linux中我的文件系统和专有的源代码控制系统都是链接.不确定这是否重要,但只是提到.

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

x53*_*539 6

  • 位置和相对路径之间有什么区别.

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

  • 复选框"递归应用"也让我感到困惑.

意味着该规则不仅用于projet-root,还用于任何子目录.即src/*.c如果没有"Apply recursivly",匹配规则将不会执行任何操作,因为它只匹配子目录中的文件src

  • 有一种方法可以指定正则表达式但是如果我把一个正则表达式以*开头,比如/ root/A // myproject/A /它会给出错误,说"在索引0附近悬挂元字符".

您正在使用通配符,而不是正则表达式.正则表达式要复杂得多,而星形意味着之前的"对象"可能会出现零次或多次.如果没有这个先前的对 只是不要检查正则表达式框,它应该按预期工作,或在星形前添加一个点,这意味着任何字符.

解决你的问题:

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

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

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

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