在 eclipse CDT 4.2 中,我只想包含几个文件夹作为资源。 例如“/root”是创建项目“myproject”的地方。我只想包含这些文件夹并排除任何其他文件夹。
- /根/A
- /根目录/B
- /根目录/C/D
我知道这可以在
Project -> Resource -> Resource Filters
但是那里的用户界面让我很困惑。
- 位置和相对路径有什么区别。
- 复选框“递归应用”也让我有些困惑。
- 有一种方法可以指定正则表达式,但是如果我放置一个以 * 开头的正则表达式,例如 */root/A/* 或 */myproject/A/*,它会给出错误提示“在索引 0 附近悬挂元字符” .
简而言之,由于这些看似令人困惑的选项(对我而言),我还无法实现上述目标。请说明
PS : 源代码在 linux 中,我的文件系统和专有的源代码控制系统都是链接。不确定这是否重要,但只是提一下。
例如 root/A/file.c --> [file.c 的版本控制系统链接]
最佳答案
- 位置和相对路径有什么区别。
Location是完整路径(例如/home/user123/workspcae/proj1/src/foo.c
),其中相对路径只是项目目录中的部分(例如源/foo.c
)
- “递归应用”复选框也让我有些困惑。
表示该规则不仅适用于projet-root,还适用于任何子目录。 IE。如果没有“递归应用”,匹配 src/*.c
的规则将不会执行任何操作,因为它只匹配子目录 src
- 有一种方法可以指定正则表达式,但是如果我把正则表达式放在 * 开头,比如 /root/A/ 或 /myproject/A/ 它将给出错误说“索引 0 附近的悬挂元字符”。
您使用的是通配符,而不是正则表达式。正则表达式要复杂得多,星号表示前一个“对象”可能出现零次或多次。如果没有这个先前的对象,Eclipse 就会感到困惑。只是不要选中正则表达式框,它应该会按预期工作,或者在星号前添加一个点,表示任何字符。
要解决您的问题,请执行以下操作:
Project -> Properties -> Resource -> Resource Filters
- 仅包括:
- 文件夹:(名称匹配)a
- 文件夹:(名称匹配)b
- 文件夹:(名称匹配)c
- 排除所有:
- 文件:(名称匹配)*
Folder c -> Properties -> Resource -> Resource Filters
- 仅包括:
- 文件夹:(名称匹配)d
- 排除所有:
- 文件:(名称匹配)*
关于eclipse-cdt - Eclipse CDT 只指定一些文件夹作为资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700445/