Pc Lint + Eigen library

Pc Lint + Eigen library

本文关键字:library Eigen Lint Pc      更新时间:2023-10-16

我尝试在c++中使用PCLint。我使用的是Eigen头库,它被定义为我的cmake文件中的包含目录。我尝试了以下命令:

lint-nt.exe std.lnt -i"pathToEigenLibrary" "listOfFileToLint"

问题是我不知道我要在我的std.lnt中写什么,lnt忽略了特征库上的错误。I tried:

-wlib(0)
-libh("pathToEigenLibrary") 
-libdir("pathToEigenLibrary") 

有人有经验吗?

我得到很多错误,如:

EigenEigensrcCoreutilXprHelper.h  337  Error 1048:  expected a constant expression
EigenEigensrcCoreutilXprHelper.h  279  Error 1048:  expected a constant expression
While instantiating struct Eigen::internal::nested<Eigen::DiagonalProduct<<1>,<2>,<3>>> at File EigenEigensrcCoreDiagonalProduct.h line 50

来自PC-lint手册:

如果满足以下条件,头文件可以成为库头文件:
(i)它属于选项+libclass的四大类之一,即all, ansi, angle和foreign(如下所述),并且不被-libdir或-libh选项排除。

…下面是三个选项的更完整的描述,用于指定头文件是否是库头文件。
•+libclass(identifier[,identifier]…)
指定假定为库头文件的一组或几组头文件。每个标识符可以是:

angle所有用尖括号指定的标头。

因此,如果您通过#include <library.h>(而不是#include "library.h")包含库,则可以使用libclass(angle)来忽略库头。我没有PC-lint,因此无法对其进行测试,所以请对此持怀疑态度。

我尝试用PC-lint编写使用了Eigen的代码,但我最终放弃了。截至6个月前,PC-lint阻塞了一些特征代码,可能无法生成有用的诊断。