断言失败:(索引 >= 0 && 索引 < size()), function operator[], file DenseCoeffsBase.h, line 410

问题描述 投票:0回答:1

我有一个计算机器人手雅可比行列式的实现,我使用 boost 来使用线程构建雅可比行列式。直到昨天它还工作正常,我没有更改有关这部分的代码中的任何内容,今天突然出现断言错误,我不知道如何解决。

这是崩溃的代码部分,我已经调试了代码,有时当索引 i 等于 2 时崩溃,有时当索引 i 等于 3 时崩溃。

int K = Matrices.size();


std::vector<HandJacobian> PartialJ(K);
std::vector<boost::thread *> TH(PartialJ.size());

for(int i = 0; i < K; i++){
    TH[i] =  new boost::thread (&HandJacobian::computeHandJacobian,&PartialJ.at(i),Object,World_reference,Contacts.at(i),Matrices.at(i));
}

断言错误:

Assertion failed: (index >= 0 && index < size()), function operator[], file DenseCoeffsBase.h, line 410.

该项目基于 C++,是在 Mac Intelchip 上使用 cmake 编译的。

c++ macos eigen assertion
1个回答
0
投票

没关系,按照关于NDEBUG的这个答案,我在CMakelist文件中添加了以下语句,它再次工作了。

set(CMAKE_BUILD_TYPE RelWithDebInfo)
© www.soinside.com 2019 - 2024. All rights reserved.