Slambook2 in Docker
代碼:https://github.com/zhh2005757/slambook2_in_Docker
這是一個用于運行高翔博士著作《視覺Slam十四講》中代碼的Docker鏡像,同時也可以在物理機上直接進行構建,為了避免十四講不同代碼所依賴的庫的版本和作業系統不匹配等問題,采用Docker技術構建了可成功運行所有代碼的虛擬環境(基于Ubuntu 16.04),讀者可在Docker中運行,亦可在自己的Ubuntu作業系統上構建(筆者測驗的版本為Ubuntu 16.04,不過更高版本的系統應該也可以運行),
構建和使用
使用Docker進行構建
git代碼到本地后,進入根目錄直接運行下面的指令
docker build -t <your_image_name>:<tag> .
“<>”中的請替換為你的鏡像名及tag,例如“slambook2_docker:v1",最終構建好的鏡像可能會達到8GB,請確保有足夠空間,
PS:不要忘記命令最后的句點”.”,
構建好之后,執行以下命令啟動容器,
docker run -d -p 5900:5900 -v /dev/shm:/dev/shm <your_image_name>:<tag>
上述命令會啟動一個基于LXDE桌面的環境的Ubuntu 16.04系統,讀者可通過VNC Viewer進行連接(埠為5900),該鏡像基于fcwu/docker-ubuntu-vnc-desktop進行構建,更多詳細內容可訪問其github 倉庫.
容器啟動之后,你可以看到一個已經部署好的可運行Slam十四講所有代碼的Ubuntu環境,接下來需要編譯書中所有的例程代碼,切換到/root/slambook2目錄下,運行以下指令進行構建,
mkdir build
cd build
cmake ..
make
然后會生成所有的十四講中代碼的可執行檔案,讀者可根據書本進行對照和使用,
在物理機上構建
如果讀者有需要在自己的系統上構建,請確保你的 gcc/g++ 版本>=5.4.0,cmake版本 >=3.17.5,關于gcc/g++以及cmake的安裝,你可以參考Dockerfile以及install.sh中的內容,在編譯代碼所依賴的庫之前,我們需要通過apt-get命令安裝Ubuntu軟體倉庫中提供的一些依賴,
apt-get install -y libssl-dev libsuitesparse-dev qtdeclarative5-dev libqglviewer-dev qt5-qmake libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev libxi-dev g++ libzip-dev libpng12-dev libcurl4-gnutls-dev libfontconfig1-dev libsqlite3-dev libglew*-dev libssl-dev libpcl-dev freeglut3 freeglut3-dev python-dev python3-dev libgtk2.0-dev pkg-config pcl-tools octovis
然后讀者可在slambook2/3rdparty路徑下逐個編譯依賴庫,也可直接運行install.sh(注意:install.sh中包含了cmake的安裝指令,如果你已經裝好cmake,請刪掉這部分指令再運行install.sh,當然你還要注意路徑的問題),最后,你可以編譯十四講書中的代碼,然后愉快地運行了,
運行截圖


補充
為了保證編譯的成功,筆者對原先十四講代碼中的CMakeLists.txt做了部分修改,詳細修改及依賴庫的版本之后有時間再補充啦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/316626.html
標籤:其他
上一篇:[面試]深信服一面+二面總結
