使用eigen时,报错如下
In file included from /usr/local/include/eigen3/Eigen/Core(272),
from /usr/local/include/eigen3/Eigen/Dense(1),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Core/DenseBase.h(448): error: expected an identifier
EIGEN_DEVICE_FUNC Scalar trace() const;
^
In file included from /usr/local/include/eigen3/Eigen/Core(272),
from /usr/local/include/eigen3/Eigen/Dense(1),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Core/DenseBase.h(448): error: expected a ";"
EIGEN_DEVICE_FUNC Scalar trace() const;
^
In file included from /usr/local/include/eigen3/Eigen/Core(273),
from /usr/local/include/eigen3/Eigen/Dense(1),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Core/MatrixBase.h(310): error: expected an identifier
EIGEN_DEVICE_FUNC Scalar trace() const;
^
In file included from /usr/local/include/eigen3/Eigen/Core(273),
from /usr/local/include/eigen3/Eigen/Dense(1),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Core/MatrixBase.h(310): error: expected a ";"
EIGEN_DEVICE_FUNC Scalar trace() const;
^
In file included from /usr/local/include/eigen3/Eigen/Core(317),
from /usr/local/include/eigen3/Eigen/Dense(1),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Core/Redux.h(508): error: expected an identifier
MatrixBase<Derived>::trace() const
^
In file included from /usr/local/include/eigen3/Eigen/Core(317),
from /usr/local/include/eigen3/Eigen/Dense(1),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Core/Redux.h(513): warning #12: parsing restarts here after previous syntax error
} // end namespace Eigen
^
In file included from /usr/local/include/eigen3/Eigen/Core(317),
from /usr/local/include/eigen3/Eigen/Dense(1),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Core/Redux.h(513): error: expected a ";"
} // end namespace Eigen
^
In file included from /usr/local/include/eigen3/Eigen/Cholesky(32),
from /usr/local/include/eigen3/Eigen/Dense(3),
from src/Reconstruction_Krieger.cpp(7):
/usr/local/include/eigen3/Eigen/src/Cholesky/LLT.h(191): error: expected an identifier
ComputationInfo info() const
^
去掉cpp中eigen相关的代码,仍然包上述错误,查看头文件,如下
#include "memory.h"
#include "mkl.h"
#include "fftw3.h"
#include "AMCSARToolBox.h"
#include "./mkl/ComMathFuncMKL.h"
#include <vector>
#include <Eigen/Dense>
调整#include <Eigen/Dense>后,如下所示,代码可以正常编译
#include "memory.h"
#include <Eigen/Dense>
#include "mkl.h"
#include "fftw3.h"
#include "AMCSARToolBox.h"
#include "./mkl/ComMathFuncMKL.h"
#include <vector>