可以告诉clang不要分析某些文件吗?

Joh*_*ker 17 xcode profiling clang

我正在尝试使用clang来描述我正在进行的项目.该项目包括一个相当大的静态库,它作为依赖项包含在Xcode中.

我真的很想不要分析依赖项的文件,因为它似乎让clang失败了.这可能吗?我一直在阅读clang文档,但我还没有找到它.

ott*_*tto 15

作为最后的手段,有一个强力选择.

将其添加到文件的开头:

// Omit from static analysis.
#ifndef __clang_analyzer__
Run Code Online (Sandbox Code Playgroud)

添加到最后:

#endif // not __clang_analyzer__
Run Code Online (Sandbox Code Playgroud)

和clang --analyze将不会看到该文件的内容.

参考:控制静态分析仪诊断

  • 这意味着我必须在静态库中的每个源文件上设置此宏,不是吗?这不是可管理的IMO.我根本不会修改我的依赖项,因为我正在为我的iOS项目使用CocoaPods. (2认同)

The*_*her 6

最终,在 2018 年实施了该选项。

使用--exclude <path> [1] [2]选项

- 排除

不要针对在此目录中找到的文件运行静态分析器(您可以多次指定此选项)。当项目包含 3rd 方库时可能很有用。


Joh*_*ker 5

所以,这不是一个真正的答案,但它运作良好.

我最终做的是提前构建静态库,然后使用scan-build构建项目.由于已经有一个最新版本的静态库,它没有被重建,因此没有被扫描.

不过,我仍然希望得到一个真正的答案.