c++,g2o(Graph-Framework),qcreator,未定义的方法引用
c++, g2o (Graph-Framework), qcreator, undefined reference to methods
我正在尝试在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)'
我被困在这里几个小时。你能说一些信息吗?谢谢!:)
好的,我下载了这里附带的g2o版本(http://openslam.org/g2o.html(,但它对我不起作用。一旦我下载了通过github提供的版本,问题就消失了。github版本是最新版本,并且创建者在需要时也会应用补丁,这意味着在安装过程中也不需要调整makefile。
唯一的"问题"是,这个新版本引入了一些更改,这使得网上找到的一些示例有点过时,但没有什么可怕的;)(通过查看旧教程、新示例、文档和源代码,启动和运行并不困难(
我将在这里复制Rainer Kuemmerle(g2o的作者(的答案,在这里找到
事实上,API发生了很大的变化,这导致了这样一个事实,即OpenSLAM的代码大小写与github上托管的当前代码不兼容。我们对此无能为力,添加新功能需要我们打破旧的 API。 最好的方法是调整使用 g2o 的代码。 例如,必须通过设置相应的优化算法来替换 setMethod。
相关文章:
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 对 Scalar ::Scalar() 的未定义引用
- 对复制 CTOR 和 CTOR 的未定义引用
- 对显式实例化的模板函数的未定义引用
- TensorRT (C++ API) 对"createNvOnnxParser_INTERNAL"的未定义引用
- 2个模板化类的非模板友元函数未定义引用错误
- 编译 libfluid 样本控制器时对"event_base_del_virtual"的未定义引用
- 获取对function_name的未定义引用
- 对 'std::thread::_M_start_thread CMake 的未定义引用进行基准测试
- 对结构方法的未定义引用
- 使用内联函数 c++ 的未定义引用
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 对 DLOPEN 的未定义引用
- QT C++中对全局变量的未定义引用
- 快速数学导致对"__pow_finite"的未定义引用
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- OpenCV 3.4.3 中对 'cv::String::d eallocate()' 错误的未定义引用