一起做RGB-D-SLAM(6)g2o报错error: no matching function

编译高翔一起做RGB-D-SLAM

添加g2o后
make报错:

slamEnd.cpp:72:104: error: no matching function for call to ‘g2o::OptimizationAlgorithmLevenberg::OptimizationAlgorithmLevenberg(SlamBlockSolver*&)’
 o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg( blockSolver );

将源代码68行和69行,如下:

SlamBlockSolver* blockSolver = new SlamBlockSolver( linearSolver );
    g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg( blockSolver );

替换为:

SlamBlockSolver* blockSolver = new SlamBlockSolver(unique_ptr<SlamBlockSolver::LinearSolverType> (linearSolver));
    g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg(unique_ptr<g2o::Solver>(blockSolver));

重新编译,成功:
在这里插入图片描述


版权声明:本文为weixin_45066412原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。