Eigen报错的定位

在使用Eigen的头文件时,编译时报了这个错:
usr/local/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
问题是这个报错并没有指出代码的哪一行错了,而只是给出了在头文件中存在的错误,一开始我还误以为我的eigen库装的有问题。后来写了一个简单的程序测试eigen发现并没有问题。最终通过一行行的将代码注释掉,才最终找到错误,确实是某行将矩阵维度搞错了!
这个坑在于提示很不友好!报错后并不能知道具体哪行出错,必须手动一行一行的去掉代码来进行排查!这是我使用Eigen的第一坑,记录一下。


版权声明:本文为chuanqi305原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。