【问题标题】:How to exclude files from Eclipse indexing (Static Code Analysis)?如何从 Eclipse 索引(静态代码分析)中排除文件?
【发布时间】:2015-09-26 19:10:48
【问题描述】:

我有一个由许多源文件、头文件和其他文件组成的 makefile 项目,我正在尝试将其转换为 Eclipse“本机”项目。索引器报告目录中存在但从构建中排除的文件的错误和警告的问题。因此,我的目录树的大部分都标有红色的x 符号。

如何让索引器忽略特定文件和/或目录?

注意:当将目录定义为“派生”时,它会被排除在进一步的搜索之外,但不幸的是不会从代码分析中排除。使用项目资源过滤器也不能解决问题。

【问题讨论】:

标签: eclipse eclipse-cdt static-analysis indexer ds-5


【解决方案1】:

单个文件很棘手,但文件夹应该是可能的。 Right click on the project -> Properties -> C/C++ General -> Paths and Symbols

查看“源位置”标签:

  • (a) 完全删除源文件夹或
  • (b) 定义排除过滤器(您还可以在其中添加文件夹、过滤器以及在一定程度上还可以添加文件等)
  • (c) 左键单击突出显示一个或多个文件或文件夹。然后,右键单击所选文件之一,然后选择Resource Configurations -> Exclude from build...。它将排除所有选定的文件或文件夹。
  • (d) 还可以查看File Types(在 C/C++ 常规中)并单击“路径和符号”的其他选项卡,看看是否可以删除某些内容...
  • (e) 您可能已经看到,还有一个 Indexer (Right click on the project -> Properties -> Indexer 可以配置

现在我希望 DS-5 的人没有停用所有这些选项...

更新:当然这些选项在 CDT 中也可用(至少其中一些)。我相应地更改了我的描述...

【讨论】:

  • 谢谢。不幸的是,我使用的是 CDT,更具体地说,是 ARM 的 DS-5 改编版,所以没有 Java 设置,特别是你提到的选项。
  • 感谢您的更新。我相信 (a) -> (d) 打算从构建本身中排除,这不是我的意图。至于(e),请参阅我对问题的回答。除非 DS-5 删除了一些 CDT 选项,否则我看不到如何使用“索引器设置”选项卡将文件仅从索引中排除。
  • 在我的具体情况下,我有一个源目录,其中包含 3 个 asm 文件 - startup.s、startup_cm0.s 和 startup_cm4.s。在这些文件中,只有startup_cm4.s 内置到项目中。因此,其他两个被排除在构建之外,并且通过索引器设置,它们被排除在索引之外。但是我不能排除一个必需的来源,否则我会得到一个链接器错误。
  • 选项 (b) 无效,但 (c) 有效! (Eclipse 4.7.1., Eclipse CDT 9.3.2.201709131603——在 ModusToolbox 1.1 中使用)。
【解决方案2】:

注意 - 这是部分答案

与 Eclipse 中的许多功能一样,这是隐藏在无休止的配置对话框中的另一个选项,并且具有与常识相反的默认设置...

为了排除从构建中排除的文件的索引,取消选中:

Window -> Preferences -> C/C++ -> Indexer -> Index source files not included in the build

我还没有找到一种方法来排除构建中包含的文件。同样,我找不到如何排除整个目录,但如果一个目录中的所有源都被排除在构建之外,那么如果不选中此设置,它也会被排除在索引之外。

【讨论】:

  • 我认为很好地回答了原始问题。不过,“排除构建中包含的 文件”这个悬而未决的问题仍然很有趣。我已经打开了一个特定的问题:stackoverflow.com/questions/49310011/…
【解决方案3】:

可以通过使用特定的 Indexer 构建配置来忽略索引中的特定文件/目录:

  1. 准备新的(特定于索引器的)构建配置。
  2. 从该配置中排除不需要的源文件,使用 源位置排除过滤器。
  3. 让 Indexer 使用这个特定的构建配置。

在此处查看分步详细信息:https://stackoverflow.com/a/69469698/1744707

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2011-11-11
    相关资源
    最近更新 更多