工程代码—— g2o安装相关问题
这些依赖包括Eigen3(线性代数库)、SuiteSparse(稀疏矩阵计算)、Qt5(图形界面)等核心组件。或运行简单测试程序。
·
编译显示:
^
(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_* # 确认库文件
或运行简单测试程序。
常见问题解决
- 版本冲突:如果之前安装过其他版本,需彻底删除旧文件:
sudo rm -rf /usr/local/include/g2o /usr/local/lib/libg2o* - 链接错误:在CMake项目中正确引用:
find_package(G2O REQUIRED) target_link_libraries(your_target PRIVATE g2o::core g2o::solvers_cholmod)
版本选择建议
- SLAM开发:推荐20200410_git版本(高博《十四讲》兼容版本)
- 最新功能:使用master分支(但需注意API变动)
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)