我在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
答案 0 :(得分:1)
如果您收到编号为900及以上的警告,则表示您正在警告级别4上运行,这对于正常操作来说太高了。我会从警告级别1开始(仅限语法)并确保一切正常运行。然后您可以增加到2或3,并有选择地启用900+和/或1900+范围内的某些警告。
要在检查过程中跳过某些部分,只需从配置或命令行中删除c / c ++源文件即可。但请确保将目录保留为包含目录,因为其他文件需要包含这些接口标头。
选项-efile
并非旨在取消文件中的警告,而是禁止关于文件的警告。有关详细信息,请参阅手册中选项的说明。
在您不负责的源代码中限制警告的方法是将源代码声明为“库”。 PC-Lint手册的第6章专门讨论这个问题。您可以从-wlib(1)
开始,对库文件使用警告级别1(仅限语法),然后使用+libclass
,+-libdir
和{{1}定义要将其视为库文件的内容}选项。如果您想查看某个包含文件是否被视为“库”标题,请使用选项+-libh
运行PC-Lint。