IAR EWARM PC-LINT禁止来自包含-header选项的标头的消息

IAR EWARM PC-LINT禁止来自包含-header选项的标头的消息,c,lint,iar,pc-lint,C,Lint,Iar,Pc Lint,我使用的是IAR温热7.4 我已按照这里的说明: 我使用--predef_宏编译器选项创建了一个满是编译器定义的头 --predef_macros C:\lint\lnt\iar-ewarm-predefined_macros_for_PC-lint.h 在iar-co-arm-v6.lnt中,我添加了以下内容: // // EWARM extended defines // -header(C:/lint/lnt/iar-ewarm-predefined_macros_for_PC-l

我使用的是IAR温热7.4

我已按照这里的说明:

我使用--predef_宏编译器选项创建了一个满是编译器定义的头

--predef_macros C:\lint\lnt\iar-ewarm-predefined_macros_for_PC-lint.h
在iar-co-arm-v6.lnt中,我添加了以下内容:

//
//    EWARM extended defines
//
-header(C:/lint/lnt/iar-ewarm-predefined_macros_for_PC-lint.h)
Lint在文件中输入了大量违反MISRA的信息

编辑: 我试着加了一行

+libh(C:/lint/lnt/iar-ewarm-predefined_macros_for_PC-lint.h)
这减少了许多违反MISRA的行为,但我仍然得到一些,例如:

#define __CODE_MEMORY_LIST1__() __CODE_MEM_HELPER1__(__code, 0)
        ^
"LINT: C:\lint\lnt\iar-ewarm-predefined_macros_for_PC-lint.h (150, 9) Note 9026: Function-like macro, '__CODE_MEMORY_LIST1__', defined [MISRA 2012 
Directive 4.9, advisory]"

#define __CODE_MEMORY_LIST2__(_P1) __CODE_MEM_HELPER2__(__code, 0, _P1)
        ^
"LINT: C:\lint\lnt\iar-ewarm-predefined_macros_for_PC-lint.h (151, 9) Note 9026: Function-like macro, '__CODE_MEMORY_LIST2__', defined [MISRA 2012 
Directive 4.9, advisory]"

所有这些消息都是使用au-misra3.lnt文件中的+elib()参数显式打开的。这就是为什么默认情况下没有启用它们

另外,当我使用-elib()来抑制它们时,它也不起作用,因为当我包含au-misra3.lnt文件时,它们被重新启用

所以答案是,包括au-misra3.lnt文件,然后手动抑制所有我不想看到的关于库文件的消息,因为这比修改lint附带的文件或为MISRA提供我自己的文件更透明