编译问题收录
1.添加Vocabulary
在ros包的下新建Vocabulary文件夹,添加ORBvoc.txt词典。使用ORBSLAM2的词典文件即可。
2.安装腾讯ncnn库
cd Thirdparty/ncnn
mkdir build&&cd build
cmake ..
make
sudo make install
sudo cp Thirdparty/ncnn/build/install/lib/libncnn.a /usr/lib
问题1:ncnn要求cmake的版本最低是3.10,因此需要升级。
解决:参考这篇博客
问题2:
[ 2%] Built target mxnet2ncnn
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
或
[ 89%] Built target ncnnoptimize
tools/caffe/CMakeFiles/caffe2ncnn.dir/build.make:61: *** target pattern contains no '%'。 停止。
CMakeFiles/Makefile2:330: recipe for target 'tools/caffe/CMakeFiles/caffe2ncnn.dir/all' failed
make[1]: *** [tools/caffe/CMakeFiles/caffe2ncnn.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
解决:安装protoc sudo apt install protobuf-compiler
[ 98%] Linking CXX executable ncnnoptimize
[ 98%] Built target ncnnoptimize
[100%] Linking CXX executable caffe2ncnn
[100%] Built target caffe2ncnn
编译通过
3.编译问题
在src目录下catkin_make
:
问题1未安装cv_bridge
解决:安装cv_bridge,源码
问题2
CMake Error at /usr/local/share/cmake-3.10/Modules/FindBoost.cmake:1928 (message):
Unable to find the requested Boost libraries.
Boost version: 1.58.0
Boost include path: /usr/include
Could not find the following Boost libraries: boost_python37
解决:安装boost1.58.0
The Boost C++ Libraries were successfully built!
查看cv_bridge的CmakeList.txt
if(PYTHONLIBS_VERSION_STRING VERSION_LESS "3.8")
# Debian Buster
find_package(Boost REQUIRED python37)
else()
# Ubuntu Focal
find_package(Boost REQUIRED python)
下载3.8的python
修改默认python版本
未完待续