【问题标题】:Assertion failed Eigen debug mode断言失败 Eigen 调试模式
【发布时间】:2014-10-20 15:14:16
【问题描述】:

我突然意识到,在使用调试模式 (-g3 -DDEBUG) 编译我的程序(使用 Eigen)时,我遇到了运行时断言错误

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,因为我认为这可能是对齐问题,但它仍然不能解决问题。以前有人碰到过这个吗? release版本编译运行正常,assert只出现在debug模式。

【问题讨论】:

    标签: c++ eigen


    【解决方案1】:

    这与对齐无关,但与编译时和运行时值之间的不匹配有关,这意味着您的代码中可能有类似的内容:

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

    其中运行时行数4 与编译时行数3 不匹配。调试器将帮助您找到罪魁祸首。

    【讨论】:

    • 非常感谢,我会试着弄清楚发生了什么。
    • 确实是问题所在
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    相关资源
    最近更新 更多