如何从Pc-lint中排除特定的'TI'包路径?

时间:2014-01-09 17:03:19

标签: c++ lint pc-lint

我在Windows PC(平台)上使用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之外使用修饰符或类型'int'[MISRA 2004 Rule 6.3] ......

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

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

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

-Ashwin

1 个答案:

答案 0 :(得分:1)

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

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

选项-efile并非旨在取消文件中的警告,而是禁止关于文件的警告。有关详细信息,请参阅手册中选项的说明。

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