-1

我尝试将 PCLint 与 c++ 一起使用。我正在使用仅在我的 cmake 文件中定义为包含目录的 Eigen 标头库。我尝试了以下命令:

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

问题是我不知道我必须在我的 std.lnt 中写什么,以便 lnt 忽略 Eigen 库上的错误。我试过了 :

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

有人有这方面的经验吗?

我收到很多错误,例如:

\Eigen\Eigen\src\Core\util\XprHelper.h  337  Error 1048:  expected a constant expression

Eigen\Eigen\src\Core\util\XprHelper.h  279  Error 1048:  expected a constant expression

While instantiating struct Eigen::internal::nested<Eigen::DiagonalProduct<<1>,<2>,<3>>> at File Eigen\Eigen\src\Core\DiagonalProduct.h line 50
4

2 回答 2

0

从 PC-lint 手册:

一个头文件可以成为一个库头文件,如果:
(i) 它属于选项 +libclass 的四大类之一,即。all、ansi、angle 和 foreign(如下所述),并且不被 -libdir 或 -libh 选项排除。
...
下面是对用于指定头文件是否或何时是库头文件的三个选项的更完整描述。
• +libclass(identifier[,identifier] ... )
指定假定为库头文件的一组或多组头文件。每个标识符可以是以下之一:

角度 用尖括号指定的所有标题。
...

因此,据推测,如果您通过#include <library.h>(而不是#include "library.h")包含您的库,您可以使用libclass(angle)忽略库标题。我没有 PC-lint,因此无法对其进行测试,因此请谨慎对待。

于 2015-08-03T15:27:11.440 回答
0

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

于 2015-08-04T13:39:10.307 回答