gpt4 book ai didi

c++ - gcc 静态分析器 (Weffc++) : exclude directories

转载 作者:行者123 更新时间:2023-11-27 22:45:29 25 4
gpt4 key购买 nike

我有一个使用很多很多库的大项目。其中一些是 HDF5、PugiXML、Boost.ASIO、Qt、MuParser 等等。这些库有的是header包含的,有的是预编译的,有的是我自己编译的。我想使用 gcc 选项 -Weffc++ 来确保我的代码的质量。

问题是,当我启用该选项时,我收到了 2000 多个警告,当我快速浏览列表时,其中有 1 个与我的项目相关,几乎所有其他内容都来 self 包含的标题!遍历整个列表是非常不切实际的。有没有办法告诉 gcc 分析给定目录中的文件,或者以某种方式排除目录(可能是正则表达式?)。

最佳答案

文档中的评论不是好消息:

When selecting this option, be aware that the standard library headers do not obey all of these guidelines; use ‘grep -v’ to filter out those warnings.

您可以使用 pragmas 暂时禁用警告:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#include <header1>
#include <header2>
#pragma GCC diagnostic push

您还可以使用 -isystem 来指定包含路径,这会抑制来自通过这些路径包含的文件的某些警告。

推荐

只是不要使用-Weffc++。即使在您自己的项目中,它也会产生垃圾。例如,它会要求您为所有 基类定义虚拟析构函数,无论这是否有意义。如果您没有在聚合初始化中初始化每个成员,它会发出警告。我 Handlebars 举在空中说:“那个警告太蠢了!”第一百次,我关闭了 -Weffc++ 并继续我的生活。

在代码质量和执行风格方面有更好的工具。我想到了 clang-tidyclang-modernizeclang-format 等 Clang 工具。

关于c++ - gcc 静态分析器 (Weffc++) : exclude directories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com