• cartogrpher2020在 ubuntu16.04编译


    cartographer could not find git for clone of abseil

    原理阐述:下载github上的abseil,然后单独编译这个库,然后更改部分cartographercartographer_ros的CMakeList.txt

     

    一:下载abseil

    网址:https://github.com/abseil/abseil-cpp.

    安装abseil的静态库:
    1. mkdir build && cd build
    2. cmake …
    3. make
    4. sudo make install
    安装abseil的动态库:可以将之前的build文件删掉,重新建立
    1. mkdir build && cd build
    2. cmake … -DBUILD_SHARED_LIBS=ON
    3. make
    4. sudo make install

    二:更改cartographer的CMakeList.txt文件(有2处)和cartographer-config.cmake.in文件(有1处)

    CMakeList.txt 第1处:

    find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)

    CMakeList.txt 第2处:#默认的库文件是 standalone_absl

    target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY}
    absl::base
    absl::synchronization
    absl::strings
    absl::flat_hash_map
    absl::numeric
    absl::flags)
    然后重新编译即可

    cartographer-config.cmake.in 1处:

    find_package(Abseil ${QUIET_OR_REQUIRED_OPTION}) Abseil 改为 absl

    三:更改cartographer_ros的CMakeList.txt,有2处

    cartographer_ros 和 cartographer_rviz的改法均一致
    find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)
    然后重新编译即可。
    本实验经过验证,可行通过


    安装 proto3,参考:https://www.jb51.net/article/163871.htm

    Unrecognized syntax identifier “proto3”. This parser only recognizes “proto2”.

    检查protobuf版本: $ protoc --version

    下载源码编译安装:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sudo apt-get install autoconf automake libtool curl make g++ unzip
    git clone https://github.com/google/protobuf.git
    cd protobuf
    git submodule update --init --recursive
    ./autogen.sh
    ./configure
    make
    make check
    sudo make install
    sudo ldconfig # refresh shared library cache.

    可能遇到问题

    很有可能,执行过程中会出现以下错误提示:

    ./autogen.sh: 4: ./autogen.sh: autoreconf: not found

    解决办法:执行以下命令即可。

    1
    2
    3
    sudo apt-get install autoconf
    sudo apt-get install automake
    sudo apt-get install libtool

    安装完成之后

    执行以下命令验证安装结果,查看版本号。

    protoc --version

    恭喜得到:libprotoc 3.9.0  或更高版本号。

    proto3是放在/usr/local/bin/protoc下的,删除/usr/bin/protoc,然后把/usr/local/bin/protoc放入/usr/bin目录下,或者建立软连接:
    sudo mv /usr/bin/protoc /usr/bin/protoc.bk
    sudo ln -s /usr/local/bin/protoc /usr/bin/protoc

     
  • 相关阅读:
    微信小程序之:获得appid
    小程序v0.10基本布局
    小程序v0.02 清理干净
    微信小程序v0.01
    让Eclipse在10秒内启动的7个优化提速技巧
    转 1 年经验 Java 求职面试题
    坑爹啊
    ES6,时间格式yyyy-MM-dd HH:MM:SS
    ln: creating hard link 问题
    boost实现串口通信(一):小试牛刀
  • 原文地址:https://www.cnblogs.com/Baron-Lu/p/12468136.html
Copyright © 2020-2023  润新知