我正在尝试在Qt项目中使用pcl库。我包含了以下头文件,它给了我错误:
#include "pcl/common/common_headers.h"
#include "pcl/io/io.h"
错误发生在eigen的头文件(LDLT.h,LLT.h)中:
'Index' in namespace 'Eigen' does not name a type
'Solve' in namespace 'Eigen' does not name a type
我确实在LDLT.h和LLT.h文件中看到了Index的定义。我不知道为什么要给我这些错误。
答案 0 :(得分:0)
也许你没有以正确的方式打电话给我......如果没有任何代码,我真的不能说,我会猜测! 要明确:
Index
是在类LDLT或LLT中声明的typedef:您应该决定要使用哪一个!请注意,Index
也在类EigenSolver
内和其他类中声明;再次,决定你要使用哪一个。solve
是给定类的方法(LDLT,LLT)您可以使用两种方法:
using namespace Something;
其中Something = LDLT
或Something = LLT
或
Eigen::LDLT<Eigen::MatrixXd>::Index your_stuff_with_index = whatever;
将LDLT<Eigen::MatrixXd>
替换为您拥有的任何内容。
关于2.,你应该像下面这样调用solve方法:
LDLT<MatrixXd> chol = whatever;
.......
.......
result = chol.solve(stuff);