Ubuntu20.04跑通GAC-Mapping的过程

        跑通GAC-mapping花了不少时间,主要问题在于opencv版本带来的麻烦。期间遇到以下几个问题:

        1)opencv3.4编译时,遇到cuda的相关编译报错,"unspported GNU version! gcc versions later than 8 are not supported"

        原因:从字面上看是gcc版本太高,但是改成gcc v7还是不行。可能是跟我电脑的cuda版本有关。

        解决办法:绕过cuda相关选项的编译

cmake ../ -DWITH_CUDA=OFF -DMAKE_BUILD_TYPE=RELEASE
make -j4
sudo make install

        2)catkin_make编译警告,warning: libopencv_core.so.4.2, needed by /opt/ros/noetic/lib/libcv_bridge.so, may conflict with libopencv_core.so.3.4。

        原因:Ubuntu20.04用apt安装的cv_bridge用的opencv是4.2,然而GAC-mapping用的是opencv3。虽然是警告,但是不解决的话会造成程序崩溃。

        解决办法:卸载原有cv_bridge,下载vision_opencv(选择noetic分支,下载zip文件),只编译cv_bridge:

mkdir build && cd build && make -j4 && sudo make install

        3)catkin_make报错,CV_OVERRIDE dose not name a type。即使CMakesLists.txt中设置了-std=c++14也没用。

        原因:未知。理论上CV_OVERRIDE是c++11特性,不应该有这个错误。

        解决办法:将CV_OVERRIDE改成override(我的是在/usr/include/opencv2/中修改descriptor.hpp)

       4)patch-netvlad预训练模型无法下载。

        原因:patch-netvlad作者原先使用的cloudstor这个托管预训练模型的网站在2023年12月关闭了,只有源仓库的readme更新了,其他转发仓库的readme并没有更新

        解决办法:看原作者的github网站patch-netvlad,找到"alternatively, you can manually ..."这一行,单击打开,就可以看到新的预训练模型网站了。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值