项目场景:
大佬们的方法都用不了。。特别是std::move改了之后还是有问题,因此有问题的朋友可以尝试一下我的方法
问题描述:
先贴一下g2o原代码:
DirectBlock* solver_ptr = new DirectBlock (linearSolver);
g2o::OptimizationAlgorithmGaussNewton* solver = new g2o::OptimizationAlgorithmGaussNewton( solver_ptr ); // G-N
我的报错一共有4个,但其实就是这两句话的错误
解决方案:
简单粗暴,直接在这两个指针前面加上unique,具体原因请参考上面大佬写的博客
DirectBlock* solver_ptr = new DirectBlock (unique_ptr<DirectBlock::LinearSolverType>(linearSolver));
g2o::OptimizationAlgorithmGaussNewton* solver = new g2o::OptimizationAlgorithmGaussNewton( unique_ptr<DirectBlock>(solver_ptr) ); // G-N
运行成功!