将项目分成不同的 PC-Lint 警告策略
Divide project into different PC-Lint Warning Policies
我对 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 文件上使用 C 策略,在 CPP 文件上使用 CPP 策略?
提前致谢!
这是一个有趣的问题。如果你正在做
单元检查(选项-u)你当然可以设置你的构建
不同的环境使用不同的选项文件
源文件。但除此之外,我认为这应该可行:
-save
au-misra3.lnt
[list of C files]
-restore
au-misra-cpp-alt.lnt
[list of C++ files]
另一个想法是使用 -header(lintoptions.h) 来包含您的 lint 选项。包含文件可能是这样的:
//lint -restore_at_end
#ifdef __cplusplus
//lint -indirect(au-misra-cpp-alt.lnt)
#else
//lint -indirect(au-misra3.lnt)
#endif
让我们知道这是否有效。
我对 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 文件上使用 C 策略,在 CPP 文件上使用 CPP 策略?
提前致谢!
这是一个有趣的问题。如果你正在做 单元检查(选项-u)你当然可以设置你的构建 不同的环境使用不同的选项文件 源文件。但除此之外,我认为这应该可行:
-save
au-misra3.lnt
[list of C files]
-restore
au-misra-cpp-alt.lnt
[list of C++ files]
另一个想法是使用 -header(lintoptions.h) 来包含您的 lint 选项。包含文件可能是这样的:
//lint -restore_at_end
#ifdef __cplusplus
//lint -indirect(au-misra-cpp-alt.lnt)
#else
//lint -indirect(au-misra3.lnt)
#endif
让我们知道这是否有效。