如何查看Eigen C ++模板库的版本号?

时间:2014-02-01 10:47:15

标签: c++ eigen

我在默认情况下添加了几个不同版本的Eigen,包括Visual C ++的目录。 但是对于一些测试数值例子使用LDLT(Cholesky分解)时,我遇到了崩溃问题。

所以我想在调试代码时确定哪个版本实际处于活动状态。

是否有任何功能可以指示当前有效的Eigen版本号?

4 个答案:

答案 0 :(得分:30)

这个答案只是上述评论的摘要:

  • 在编译时,您有EIGEN_WORLD_VERSIONEIGEN_MAJOR_VERSIONEIGEN_MINOR_VERSION,您可以轻松地嵌入此信息 你的申请。

  • 3.1.91听起来像是beta version的{​​{1}}。

  • 版本号宏在位于的3.2中定义 Macros.h

答案 1 :(得分:4)

要检查Eigen C ++模板库的版本号,只需输入

即可
dpkg -p libeigen3-dev

在终端。 或者只需输入

pkg-config --modversion eigen3

你会得到Eigen版本。

答案 2 :(得分:3)

虽然这不是OP的目标,但是由于不同版本的Eigen的兼容性原因,发现这个问题的人可能会对检查版本是否等于特定版本更新感兴趣。使用EIGEN_VERSION_AT_LEAST(x, y, z)宏可以更轻松地完成此操作,如下所示:

#if EIGEN_VERSION_AT_LEAST(3,3,0)
    // Implementation for Eigen 3.3.0 and newer
#else
    // Implementation for older Eigen versions
#endif 

此宏也在Eigen/src/Core/util/Macros.h中定义,并在内部使用EIGEN_WORLD_VERSIONEIGEN_MAJOR_VERSIONEIGEN_MINOR_VERSION

答案 3 :(得分:2)

在Linux上:

grep "#define EIGEN_[^_]*_VERSION" /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h

您会得到类似的东西:

#define EIGEN_WORLD_VERSION 3
#define EIGEN_MAJOR_VERSION 3
#define EIGEN_MINOR_VERSION 7

表示版本3.3.7