【问题标题】:c++, g2o (Graph-Framework), qcreator, undefined reference to methodsc++, g2o (Graph-Framework), qcreator, 未定义的方法引用
【发布时间】:2013-10-09 20:00:31
【问题描述】:

我正在尝试在 c++ 项目中使用 g2o 库。我在两个系统中安装了库

  • OpenSuse - 通过 zypper 安装的依赖关系,通过根据说明编译的 g2o
  • Ubuntu - 所有依赖项都通过 apt-get、g2o 根据说明进行编译

我的 .pro 文件包括这些,以便链接到 .so 库:

INCLUDEPATH +=   /home/rhun/data/Coding/g2o/trunk/lib/
LIBS        += -L/home/rhun/data/Coding/g2o/trunk/lib/
LIBS += -lg2o_calibration_odom_laser
LIBS += -lg2o_cli
LIBS += -lg2o_core
LIBS += -lg2o_csparse_extension 
LIBS += -lg2o_ext_freeglut_minimal
LIBS += -lg2o_interface
LIBS += -lg2o_parser
LIBS += -lg2o_simulator
LIBS += -lg2o_solver_csparse
LIBS += -lg2o_solver_dense
LIBS += -lg2o_solver_eigen
LIBS += -lg2o_solver_pcg
LIBS += -lg2o_solver_slam2d_linear
LIBS += -lg2o_solver_structure_only
LIBS += -lg2o_stuff
LIBS += -lg2o_tutorial_slam2d
LIBS += -lg2o_types_data
LIBS += -lg2o_types_icp
LIBS += -lg2o_types_sba
LIBS += -lg2o_types_sclam2d
LIBS += -lg2o_types_sim3
LIBS += -lg2o_types_slam2d
LIBS += -lg2o_types_slam3d
INCLUDEPATH += /usr/include/suitesparse/  
INCLUDEPATH += /home/rhun/data/Coding/g2o/tags/before-github-sync/
INCLUDEPATH += /home/rhun/data/Coding/g2o/tags/before-github-sync/EXTERNAL/eigen3/
INCLUDEPATH += /home/rhun/data/Coding/g2o/trunk/build/

当我尝试#include 时,我可以在下拉菜单中看到所有内容。

但是,我不断收到此消息:

error: undefined reference to 'g2o::SparseOptimizer::setMethod(g2o::SparseOptimizer::Method)'

我在这里被困了好几个小时。你能解释一下吗?谢谢! :)

【问题讨论】:

    标签: c++ qt-creator


    【解决方案1】:

    好的,我下载了 here (http://openslam.org/g2o.html) 附带的 g2o 版本,但它对我不起作用。一旦我下载了ships through github 的版本,问题就消失了。 github 版本是最新版本,并且在创建者需要时应用补丁,这意味着在安装过程中也不需要调整 makefile。

    唯一的“问题”是,这个新版本引入了一些变化,这使得网上找到的一些例子有点过时,但并不可怕;) (通过查看旧教程、新示例、文档和源代码,启动和运行并不难)

    我将Rainer Kuemmerle(g2o的作者)的答案复制到这里,找到here

    确实,API 发生了很大变化,导致 OpenSLAM 的代码案例与 github 上托管的当前代码不兼容。我们对此无能为力,添加新功能需要我们打破旧 API。 最好的办法是调整使用 g2o 的代码。 例如,setMethod 必须通过设置相应的 OptimizationAlgorithm 来替换。

    【讨论】:

      猜你喜欢
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 2013-01-08
      相关资源
      最近更新 更多