[英]How to check the version number of Eigen C++ template library?
我默認添加了幾個不同版本的 Eigen,包括 Visual C++ 目錄。 但是在對一些測試數值示例使用LDLT
(Cholesky 分解)時,我遇到了崩潰問題。
所以我想在調試代碼時確定哪個版本實際上處於活動狀態。
是否有任何功能可以指示當前活動的 Eigen 版本號?
這個答案只是以上評論的總結:
在編譯時,您有EIGEN_WORLD_VERSION
、 EIGEN_MAJOR_VERSION
和EIGEN_MINOR_VERSION
,您可以輕松地將此信息嵌入到您的應用程序中。
3.1.91
聽起來像是3.2
的beta version
。
版本號宏在位於\\Eigen\\src\\Core\\util\\
Macros.h
中定義。
為了檢查 Eigen C++ 模板庫的版本號,只需鍵入
dpkg -p libeigen3-dev
在終端。 或者只是輸入
pkg-config --modversion eigen3
您將獲得 Eigen 版本。
雖然這不是 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_VERSION
,並EIGEN_MINOR_VERSION
內部使用EIGEN_WORLD_VERSION
、 EIGEN_MAJOR_VERSION
和EIGEN_MINOR_VERSION
。
在 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.