当我在IAR Workbench上的代码上运行PC-Lint时,它与我在下面包含的库头文件yvals.h中存在的代码片段冲突,然后PC-Lint停止工作。
/* IAR compiler version check */
#if (__IAR_SYSTEMS_ICC__ < 9) || (__IAR_SYSTEMS_ICC__ > 9)
#error "DLib compiled with wrong (version of IAR) compiler"
#endif我使用的IAR编译器的版本是co-iar.lnt。我从PC-Lint配置文件中选择了这个编译器版本。
发布于 2021-03-31 04:09:54
IAR编译器在内部定义了各种预处理器符号(如__IAR_SYTEMS_ICC),这些符号对于您的设置中的PC-Lint是未知的。幸运的是,您可以使用命令行选项--predef_macros iar_symbols.h指示IAR编译器生成一个包含所有这些符号的文件。您可以在Project > Options > Compiler > Extra Options下的任何嵌入式工作台项目中添加此选项。一旦编译了项目,就会生成文件iar_symbols.h。之后,您可以再次从项目中删除--predef_macros选项。
现在,您需要通过将选项-header(iar_symbols.h)添加到PC-Lint命令行来指示PC-Lint读取生成的文件。这应该可以解决您的问题。
请注意,预定义符号的列表取决于所使用的编译器版本。如果您对不同的项目使用不同的IAR编译器版本,则应该为每个编译器版本生成一个iar_symbols.h头文件。
https://stackoverflow.com/questions/66637952
复制相似问题