ORB_SLAM2编译debug 小结
目录
2. 对‘[email protected]_4.0’未定义的引用
源码编译OpenCV请查看本人博客https://blog.csdn.net/hhaowang/article/details/102636432
1. 编译报错‘./lib/libpng.so’
安装好所有的依赖项后,编译ORB_SLAM2,只要运行如下的命令就行了:
cd ORB_SLAM2
chmod +x build.sh
./build.sh
解决办法:安装libpng依赖包和zlib包
1) 安装libpng前要安装ZLib
2) ZLib和libpng的目录结构应该是同一级的:
参考:https://blog.csdn.net/aa1600159112/article/details/76664566
下载源码zlib和libpng,编译,安装:
1. 下载
链接:https://github.com/raulmur/ORB_SLAM2/issues/139
链接: https://sourceforge.net/projects/libpng/
2. 配置参数
参考: https://blog.csdn.net/FruitHardCandy/article/details/84172458
在装libpng的时候,要做的是 在scripts下面的makefile.linux文件拷贝到libpng根目录下重命名为makefile,
然后用命令 ./configure --prefix=/usr/local/libpng ,或者删除原有的configure文件,新建一个空白同名文件,将
“--prefix=/usr/local/libpng” 拷贝进去即可,意思就是说,不用configure,直接make就好了。
3. 编译,安装
根目录下直接编译即可:
make
sudo make install
2. 对‘aaa@qq.com_4.0’未定义的引用
问题分析:
这个错误跟opencv库相关,由于TIFF模块缺失导致。
TIPS:终端运行如下指令,查看是否有tiff相关模块
pkg-config --libs opencv
解决办法:
删除OpenCV目录下的build文件夹,重新编译。并且,在cmake编译opencv时候加参数编译-D BUILD_TIFF=ON
源码编译OpenCV请查看本人博客https://blog.csdn.net/hhaowang/article/details/102636432
I followed the same tutorial for install opencv and I had the same problem. This works for me:
sudo apt-get autoremove libtiff5-dev
sudo apt-get install libtiff5-dev
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make
3. error: No rule to make target '/usr/lib/libOpenNI.so', needed by 'bin/euroc_rectify'。 停止。
这类问题的出现说明程序在编译时,CMakeLists.txt 文件没有找到OpenNI.so, 即 Pangolin库未安装或破损。
重新安装pangolin库即可。
1、下载安装包:
git clone https://github.com/stevenlovegrove/Pangolin.git
2、安装依赖(Required Dependencies):
C++11(编译器要有对这个特性的支持)
安装依赖Glew:
sudo apt-get install libglew-dev
安装Cmake:
sudo apt-get install cmake (一般这个都会有,有的话就不用安装了)
(建议的依赖)Recommended Dependencies:
安装Python2/Python3(for drop-down interactive console):
sudo apt-get install libpython2.7-dev
如果还有其他的需求,可以参考REANDEME.txt文档中对应依赖的安装。
3、编译安装Pangolin:
cd [path-to-pangolin(Pangolin路径)]//打开解压后的Pangolin文件夹 mkdir build cd build cmake .. make(或者用cmake --build .) sudo make install (.h默认安装到了/usr/local/include)