cov-build 包装您现有的构建命令,监视它并产生并行编译器调用以理解您的代码。这些并行编译器调用将看到相同的命令行被传递给您自己的编译器。
因此,如果您希望此定义对您的编译器以及 Coverity 生效,那么您只需按照通常的方式将其添加到您的构建中,Coverity 就会看到它。
如果要添加只有 Coverity 的编译器可以看到的定义,最好在编译器的配置中完成。
您可以直接编辑配置(添加
<append_arg>-Dmy_macro_name=my_macro_body</append_arg>
在该<begin_command_line_config>
行之后),或使用--xml-option
.
例如,如果您使用快捷方式 gcc config,则如下所示:
$ cov-configure --gcc --xml-option=append_arg>-Dmy_macro_name=my_macro_body.
我注意到您在--preprocess-first
cov-build 命令行上使用 - 我建议不要这样做,因为它会破坏 XREF,使浏览缺陷信息变得更加困难,并且使分析无法找到一些缺陷(即到期的缺陷)到宏)。--preprocess-next
行为类似于--preprocess-first
并且仅在初始编译尝试失败时才会触发,因此如果您--preprocess-first
用于解决编译问题,我强烈建议使用 --preprocess-next 代替。
如果您确实有编译问题,最好将它们(连同复制器)报告给 Coverity 支持,以便在未来的版本中修复它们。