2014-10-20 164 views
1

我突然意识到,我的编译程序时(使用本征)使用调试模式(-g3 -DDEBUG),我得到一个运行时断言错误断言失败征调试模式

Assertion failed: (v == T(Value)), function variable_if_dynamic, file /Users/vlad/eigen_3.2.2/Eigen/src/Core/util/XprHelper.h, line 53 

我想不通的地方这正是这种情况发生的原因。我还在我使用Eigen成员的唯一类中使用了EIGEN_MAKE_ALIGNED_OPERATOR_NEW,因为我认为这可能是对齐问题,但它仍不能解决问题。有没有人碰过这个?发布版本编译并运行得很好,断言仅在调试模式下出现。

回答

3

这是不相关的对齐,而是意味着你编译时和运行时的值之间的不匹配可能在你的代码是这样的:

Matrix<double,3,Dynamic> mat(4,5); 

中行的运行时数4不匹配编译时的行数3。调试器将帮助您找到犯罪行。

+0

非常感谢,会试图弄清楚发生了什么事情。 – vsoftco 2014-10-20 07:22:33

+0

确实是这个问题 – vsoftco 2014-10-21 17:52:54