1

我在 windows PC(platform) 上使用 PC-lint。

我正在运行我的代码,但收到此错误/警告,并且在运行一定百分比后,我的代码崩溃了。所有错误仅与 linting 有关。

警告:

C:\Program Files\Texas Instruments\ndk_x_xx_xx_xxx\packages\ti\ndk\inc\usertype.h(118):注 960:违反 MISRA 2004 所需规则 10.6,无符号整数文字需要“U”后缀

C:\Program Files\Texas Instruments\ndk_x_xx_xx_xxx\packages\ti\ndk\inc\usertype.h(145):注释 960:违反 MISRA 2004 所需规则 10.6,无符号整数文字需要“U”后缀

C:\Program Files\Texas Instruments\ndk_x_xx_xx_xxx\packages\ti\ndk\inc\socket.h(53):注 960:违反 MISRA 2004 所需规则 10.6,无符号整数文字需要“U”后缀

C:\Program Files\Texas Instruments\ndk_x_xx_xx_xxx\packages\ti\ndk\inc\socket.h(159):注释 970:在 typedef [MISRA 2004 Rule 6.3] 之外使用修饰符或类型“int”... ...

因为我无法修改该 ndk 包。所以我想从我的 linting 过程中排除这些文件......我从堆栈溢出中得到了一些旧答案,但这些与源文件有关,而不是与头文件有关。

我在 usertype.h 和 socket.h 等头文件中遇到问题,我试图将 -efile(960,usertype.h) 选项放在我的 lint.lnt 文件中,但问题仍然存在。

你能告诉我这个的解决方案吗???

-阿什温

4

1 回答 1

2

如果您收到编号为 900 及以上的警告,则说明您在警告级别 4 上运行,这对于正常操作来说太高了。我将从警告级别 1(仅限语法)开始,并确保一切正常运行。然后您可以增加到 2 或 3,并选择性地启用 900+ 和/或 1900+ 范围内的一些单独警告。

要跳过检查过程中的某些部分,只需从配置或命令行中删除 c/c++ 源文件。但请确保将目录保留为包含目录,因为其他文件将需要包含这些接口标头。

该选项-efile不是为了抑制文件中的警告而是为了抑制关于文件的警告。有关详细信息,请查看手册中的选项说明。

在您不负责的源代码中限制警告的方法是将源代码声明为“库”。PC-Lint 手册的整个第 6 章都专门讨论这个主题。您可以首先对库文件使用警告级别 1(仅限语法),然后使用、和选项-wlib(1)定义您希望被视为库文件的内容。如果您想查看某个包含文件是否被视为“库”头文件,请使用选项运行 PC-Lint 。+libclass+-libdir+-libh-vf

于 2014-02-25T07:49:24.910 回答