Eigen库调试方法

1概述

刚开始使用Eigen库的同学,调试时经常不知道错误信息出自代码的哪个位置,经常无从下手。

以下以qt为例,说明报错的位置。

2界面设置

打开debug栏:

所有的报错信息都在debug界面下。

2编译不通过

查看问题选项卡的“required from here”

Eigen库调试方法_第1张图片

双击,会自动跳转到“编译输出”。在“编译输出”的相关位置继续双击,会跳转到问题代码处。

 

 

3运行中报错

现象:

Eigen库调试方法_第2张图片

前面Eigen开头的是库文件,接着不是Eigen开头的第一行,即是文件出错的位置。

Eigen库调试方法_第3张图片

 

4 编程基础

类型一定要一致。

最基本的类型是MatrixXd,MatrixXi,其他类型都是在这个基础上定义的,例如MatrixX3d,Matrix3d等。

4.1不同大类不能赋值

MatrixXd,MatrixXi不可以相互赋值。

4.2类型传递的兼容形式是向大兼容。

比如MatrixX3d可以给MatrixXd赋值,但是MatrixXd赋值给MatrixX3d不行。

 

5常见错误

5.1 YOU_MIXED_DIFFERENT_NUMERIC_TYPES

error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY

EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar);

参数类型不匹配,请检查。

 

 

 

 

 

 

 

你可能感兴趣的:(Eigen库调试方法)