2014-10-20 167 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