编译显示:

                                                                     ^
(03:41:00) ERROR: /movex/modules/planning/scenarios/rescue/BUILD:37:8: Linking of rule '//modules/planning/scenarios/rescue:rescue_scenario_test' failed (Exit 1): crosstool_wrapper_driver_is_not_gcc failed: error executing command external/local_config_cuda/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc @bazel-out/k8-fastbuild/bin/modules/planning/scenarios/rescue/rescue_scenario_test-2.params
bazel-out/k8-fastbuild/bin/_solib_local/libmodules_Splanning_Sopen_Uspace_Steb_Slibteb_Uplanner.so: undefined reference to `g2o::OptimizableGraph::Vertex::getMinimalEstimateData(double*) const'
bazel-out/k8-fastbuild/bin/_solib_local/libmodules_Splanning_Sopen_Uspace_Steb_Slibteb_Uplanner.so: undefined reference to `g2o::SparseOptimizer::setAlgorithm(g2o::OptimizationAlgorithm*)'
bazel-out/k8-fastbuild/bin/_solib_local/libmodules_Splanning_Sopen_Uspace_Steb_Slibteb_Uplanner.so: undefined reference to `g2o::Factory::registerType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<g2o::AbstractHyperGraphElementCreator> const&)'
bazel-out/k8-fastbuild/bin/_solib_local/libmodules_Splanning_Sopen_Uspace_Steb_Slibteb_Uplanner.so: undefined reference to `g2o::MarginalCovarianceCholesky::computeCovariance(g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&, std::vector<int, std::allocator<int> > const&, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > const&)'

以下是安装g2o稳定版本的详细步骤,综合了多个来源的最佳实践:

1. 安装依赖项

首先安装必要的系统依赖库:

# Ubuntu/Debian系统
sudo apt-get update
sudo apt-get install -y cmake libeigen3-dev libsuitesparse-dev qt5-qmake qt5-default libqglviewer-dev-qt5 libcholmod3 libspdlog-dev

这些依赖包括Eigen3(线性代数库)、SuiteSparse(稀疏矩阵计算)、Qt5(图形界面)等核心组件。

2. 下载稳定版本源码

推荐使用20200410_git这个稳定版本(兼容性较好):

git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
git checkout 20200410_git  # 切换到稳定版本

3. 编译与安装

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DG2O_BUILD_EXAMPLES=OFF  # 关闭示例以加快编译
make -j$(nproc)  # 使用多核编译
sudo make install

关键参数说明:

  • -DCMAKE_BUILD_TYPE=Release:优化性能
  • -DG2O_BUILD_EXAMPLES=OFF:跳过示例编译(可选)

4. 验证安装

检查是否安装成功:

ls /usr/local/include/g2o  # 确认头文件
ls /usr/local/lib/libg2o_*  # 确认库文件

或运行简单测试程序。

常见问题解决

  1. 版本冲突:如果之前安装过其他版本,需彻底删除旧文件:
    sudo rm -rf /usr/local/include/g2o /usr/local/lib/libg2o*
    
  2. 链接错误:在CMake项目中正确引用:
    find_package(G2O REQUIRED)
    target_link_libraries(your_target PRIVATE g2o::core g2o::solvers_cholmod)
    

版本选择建议

  • SLAM开发:推荐20200410_git版本(高博《十四讲》兼容版本)
  • 最新功能:使用master分支(但需注意API变动)
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐