slambook2 编译运行测试用例

Posted by Jinming Qiao on May 2, 2020

slambook2 编译运行测试用例


名称:slambook测试用例编译与环境

容器:docker

作用:从源码编译算法


环境配置
  • sudo curl -sSL https://get.daocloud.io/docker sh
  • sudo usermod -aG docker [用户名]
  • sudo docker pull bodcoder2/slam14:latest
更改国内镜像源头(不是必要操作)
  • sudo vim /etc/docker/daemon.json

  • 复制黏贴 {
    "registry-mirrors" : [        
        "http://docker.mirrors.ustc.edu.cn",
        "http://registry.docker-cn.com",
        "http://hub-mirror.c.163.com"
      ],
      "insecure-registries" : [
        "registry.docker-cn.com",
        "docker.mirrors.ustc.edu.cn"
      ],
      "debug" : true,
      "experimental" : true
    }
    
  • esc -> wq

  • sudo systemctl daemon-reload

  • sudo systemctl restart docker
具体使用与实际编译
> 使用
>
>   - cd ~
>   - mkdir share
>   - docker run -it -v ~/share bodcoder2/slam14:latest /bin/bash
>   - cd /root/SLAMCode/slambook2
>   - vim ~/.bashrc
>   - export PATH=/root/cmake-3.17.0-rc2-Linux-x86_64/bin:$PATH
>   - source ~/.bashrc 
>   - cd ch-xxx
>   - mkdir build
>   - cd build
>   - cmake ..
>   - make
>   - ./xxx


> 再次启动
>
>   - sudo docker ps -a
>   - sudo docker start [CONTAINER ID]
>   - sudo docker exec -it [CONTAINER ID] bash


> 远程IDE调用
>
>   - 打开vscode
>   - 下载插件 docker
>   - 连接docker
>   - 下载插件 Remote Development


> docker使用本地桌面
>
>   - docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE -it -v ~/share bodcoder2/slam14:latest /bin/bash  
>   - 本地桌面执行:xhost +


> 报c库错误,在docker中执行
>
>   - export LC_ALL=C


> ch8编译问题解决
>
>   - 将CMakeLists.txt 中 find_package(OpenCV 4 REQUIRED) 修改为 find_package(OpenCV 3.1 REQUIRED)


> ch9编译问题解决
>
>   - cd ~/Sophus/
>   - rm -r build/
>   - mkdir build/
>   - cd build/
>   - cmake ..
>   - make
>   - make install
>   - cd .../ch9/build
>   - cmake ..
>   - make


> ch10编译问题解决
>
>   - mkdir build
>   - cd build
>   - cmake ..
>   - make

> ch13编译问题解决
>
>   - mkdir build
>   - apt-get install cmake libgtest-dev
>   - cd /usr/src/gtest
>   - cmake CMakeLists.txt
>   - make
>   - cp *.a /usr/lib
>   - cd -
>   - cd build
>   - cmake ..
>   - make