【问题标题】:Divide project into different PC-Lint Warning Policies将项目划分为不同的 PC-Lint 警告策略
【发布时间】:2015-03-31 06:07:55
【问题描述】:

我有一个关于 PC-Lint 及其配置文件的问题。在该文件中,我从以下内容开始:

// --- Rules --------------------------------------------------------------------------------------

// warning policy
au-misra3.lnt                    // (MISRA C 2012 (TM) - 6/12/14)
au-misra-cpp-alt.lnt             // (MISRA C++ 2008 using 9000 level messages - 6/12/14)

该项目混有 .c 和 .cpp 文件。如何告诉 PC-Lint 仅在 C-Files 上使用 C-Policy,在 CPP-Files 上使用 CPP-Policy?

提前致谢!

【问题讨论】:

    标签: c++ c static-analysis pc-lint


    【解决方案1】:

    这是一个有趣的问题。如果你正在做 单元检查(选项 -u)你当然可以设置你的构建 为不同的环境使用不同的选项文件 源文件。但除此之外,我认为这应该可行:

    -save
    au-misra3.lnt
    [list of C files]
    -restore
    
    au-misra-cpp-alt.lnt
    [list of C++ files]
    

    【讨论】:

    • 就这么简单。有关更多信息,请参阅其他评论。该解决方案缺乏大型爆炸项目的努力。但是,它有效。
    【解决方案2】:

    另一个想法是使用 -header(lintoptions.h) 来包含您的 lint 选项。包含文件可能是这样的:

    //lint -restore_at_end
    #ifdef __cplusplus
    //lint -indirect(au-misra-cpp-alt.lnt)
    #else
    //lint -indirect(au-misra3.lnt)
    #endif
    

    让我们知道这是否有效。

    【讨论】:

    • 对我来说,这个选项不起作用。由于我已将其集成到 Jenkins 插件中,因此我不确定我的设置是否正确。不过,我稍后会研究一种方法。
    猜你喜欢
    • 2018-07-16
    • 2015-01-29
    • 2011-11-25
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2020-06-15
    • 2014-08-08
    相关资源
    最近更新 更多