ubuntu20.04编译LIO-SAM问题解决
gtsam注意和tbb都使用源码安装PPA安装会造成版本混乱要选择oneAPI TBB# 克隆 oneTBB 仓库 git clone https://github.com/oneapi-src/oneTBB.git cd oneTBB # 创建构建目录并配置 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX/usr/local .. # 可自定义安装路径 make -j$(nproc) sudo make install# 1. 安装 GTSAM 依赖 sudo apt install libboost-all-dev libtbb-dev cmake libfmt-dev # 2. 下载并编译 GTSAM 4.2.0适配 oneAPI TBB cd ~ git clone --depth 1 --branch 4.2.0 https://github.com/borglab/gtsam.git cd gtsam mkdir build cd build # 3. CMake 配置强制绑定 oneAPI TBB cmake \ -DGTSAM_BUILD_EXAMPLESOFF \ -DGTSAM_BUILD_TESTSOFF \ -DGTSAM_WITH_TBBON \ -DGTSAM_BUILD_WITH_MARCH_NATIVEON \ -DTBB_INCLUDE_DIR/usr/local/include/oneapi/tbb \ -DTBB_LIBRARY/usr/local/lib/libtbb.so \ -DCMAKE_INSTALL_PREFIX/usr/local \ .. # 4. 编译安装-j8 按 CPU 核心数调整 make -j8 sudo make install # 5. 更新系统库缓存 sudo ldconfiglio-sam就是原版就行主要改cmake(c14和链接tbb)还有头文件中的opencv头文件这里我直接把修改整理#set(CMAKE_CXX_FLAGS -stdc11) set(CMAKE_CXX_FLAGS -stdc14) link_directories( /usr/local/lib # oneAPI TBB 源码 GTSAM 库路径 /usr/local/include/oneapi/tbb # oneAPI TBB 头文件 /usr/local/include target_link_libraries(${PROJECT_NAME}_imuPreintegration Boost::timer ${catkin_LIBRARIES} ${PCL_LIBRARIES} ${OpenCV_LIBRARIES} gtsam tbb) #增加tbb target_link_libraries(${PROJECT_NAME}_imuPreintegration Boost::timer ${catkin_LIBRARIES} ${PCL_LIBRARIES} ${OpenCV_LIBRARIES} gtsam tbb) include/utility.h中 //#include opencv/cv.h #include opencv2/opencv.hpp修改/usr/include/flann/util/serialization.h 使其支持unordered_map特化这个我不知道是不是只有我有这个问题暂时记录注意备份一份serialization.h.bak。增加#include unordered_map并在map的特化下面添加函数//LIO_SAM // 在此处添加 std::unordered_map 特化 templatetypename T, typename U struct Serializerstd::unordered_mapT, U { templatetypename Archive static void save(Archive ar, const std::unordered_mapT, U map) { size_t size map.size(); ar size; for (const auto kv : map) { ar kv.first kv.second; } } templatetypename Archive static void load(Archive ar, std::unordered_mapT, U map) { size_t size; ar size; map.clear(); map.reserve(size); for (size_t i 0; i size; i) { T key; U val; ar key val; map.emplace(key, val); } } };运行这位兄弟提供了开源数据集我下载的行人手持设备的数据casual_walk.baghttps://blog.csdn.net/suoxd123/article/details/151153565动态链接下gtsamexport LD_LIBRARY_PATH$LD_LIBRARY_PATH:/usr/local/lib然后启launch再播包即可roslaunch lio_sam run.launch
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2416162.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!