Eigen 3.2.1 + MKL = C4244编译器警告

rno*_*dle 3 c++ intel-mkl eigen

在编译具有Eigen和EIGEN_USE_MKL_ALL标志的项目时遇到这些警告的任何人?我按照这里的说明:http: //eigen.tuxfamily.org/dox/TopicUsingIntelMKL.html.这只发生在我身上#include <Eigen/Eigenvalues>

编译日志示例:

eigen3.2.1\eigen\src/Eigenvalues/RealSchur_MKL.h(76):警告C4244:'初始化':从'__int64'转换为'int',可能丢失数据eigen3.2.1\eigen\src/Eigenvalues/ComplexSchur_MKL. h(87):警告C4244:'初始化':从'__int64'转换为'int',可能丢失数据eigen3.2.1\eigen\src/Eigenvalues/SelfAdjointEigenSolver_MKL.h(80):警告C4244:'初始化':从'__int64'转换为'int',可能会丢失数据

我知道这些警告意味着什么,但要解决它们,我需要更改库代码.如果没有压制这些警告,你有什么建议(以防我不知何故错过了什么)?

Ben*_*ner 5

在64位平台上,Eigen使用64位整数来编码其矩阵的维数.MKL包装器使用32个整数,如果矩阵大小超过20亿行或列,则可能会溢出.