花了一个下午配Pangolin环境,一直遇到报错Unknown CMake command “pybind11_add_module“,笔者在安装时找了不少教程,但是没有完全解决我的问题,因此插个树,方便后人乘凉。
安装步骤
这一部分参考Ubuntu20.04 —— 新系统从头安装ORB-SLAM3过程(2022年)
安装可能需要的依赖
# 安装Pangolin所需依赖
sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
# sudo apt install cmake # 注意以前装了就不需要安装了
sudo apt install libpython2.7-dev
# sudo apt install python-pip
# sudo python -mpip install numpy pyopengl Pillow pybind11
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
# sudo apt install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
# sudo apt install libdc1394-22-dev libraw1394-dev
# sudo apt install libjpeg-dev libpng-dev libtiff5-dev libopenexr-dev
clone,编译与安装
git clone https://github.com/stevenlovegrove/Pangolin.git
# 或者用老版本
# git clone https://github.com/stevenlovegrove/Pangolin/tree/v0.6.git
cd Pangolin
mkdir build && cd build
cmake ..
make -j4
sudo make install
在cmake
一步容易遇到问题
问题阐述:pybind环境缺失
提示我pybind11没有安装
方法探索
试过:
- git clone pybind后,用cmake编译安装
pybind11
- pip直接安装
pybind11
- pip安装
pytest
等等一系列东西 - “sudo python -mpip install pybind11”
无果
正确方法✅
一句话概括,就是Pangolin里自己有个路径放第三方库文件,但是里面的pybind11
是空的!!
因此,在github上把pybind11
clone下来,然后放到对应位置就行
补充:
可能在虚拟机上也要安装pybind吧(即尝试过的方法一)但笔者认为这步不是必要的,读者可以试一试跳过这步
查找Pangolin的第三方库
进入Pangolin内
find ./ -name pybind11
找到第三方库的位置【笔者下载了两个版本的Pangolin】
编译成功前应该只有一个pybind11
路径
进入该路径,发现是空的 。
下载pybind11
在hithub:https://github.com/pybind/pybind11
下载下来后替换掉上述空pybind11
,然后再cmake ..
,成功!
希望本篇文章对你有帮助,感谢阅读~