Я получаю следующую ошибку при попытке собрать пакет lsd-slam_noros
. В целом этот пакет зависит от двух других пакетов openFABmap
и g2o
, оба компилируются без ошибок. При компиляции модуля lsd-slam я получаю следующую ошибку.
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
from /home/vivJune_2019/lsd_slam_noros-master/thirdparty/openFabMap/include/bowmsctrainer.hpp:58,
from /home/vivJune_2019/lsd_slam_noros-master/thirdparty/openFabMap/include/openfabmap.hpp:59,
from /home/vivJune_2019/lsd_slam_noros-master/lsd_slam/global_mapping/fab_map.cc:41:
/usr/local/include/opencv2/features2d.hpp:231:19: error: conflicting declaration ‘typedef class cv::Feature2D cv::FeatureDetector’
typedef Feature2D FeatureDetector;
^
In file included from /home/vivJune_2019/lsd_slam_noros-master/lsd_slam/global_mapping/fab_map.cc:22:0:
/home/vivJune_2019/lsd_slam_noros-master/lsd_slam/global_mapping/fab_map.h:29:7: note: previous declaration as ‘class cv::FeatureDetector’
class FeatureDetector;
Ошибка указывает на проблему с объявлением в файле bowmsctrainer.hpp
по сравнению с объявлением в fab_map.h
(?). Я не уверен, как решить этот конфликт декларации.
Пожалуйста, помогите!
Вот более полный журнал процесса сборки (bowmsctrainer собран до текущей части)
Scanning dependencies of target openFABMAP
[ 2%] Building CXX object thirdparty/openFabMap/CMakeFiles/openFABMAP.dir/src/inference.cpp.o
[ 5%] Building CXX object thirdparty/openFabMap/CMakeFiles/openFABMAP.dir/src/chowliutree.cpp.o
[ 8%] Building CXX object thirdparty/openFabMap/CMakeFiles/openFABMAP.dir/src/msckd.cpp.o
[ 11%] Building CXX object thirdparty/openFabMap/CMakeFiles/openFABMAP.dir/src/bowmsctrainer.cpp.o
[ 14%] Building CXX object thirdparty/openFabMap/CMakeFiles/openFABMAP.dir/src/fabmap.cpp.o
[ 17%] Linking CXX static library ../../../lib/libopenFABMAP.a
[ 17%] Built target openFABMAP
Scanning dependencies of target lsd_slam
[ 20%] Building CXX object lsd_slam/CMakeFiles/lsd_slam.dir/depth_estimation/depth_map_pixel_hypothesis.cc.o
[ 22%] Building CXX object lsd_slam/CMakeFiles/lsd_slam.dir/depth_estimation/depth_map.cc.o
[ 25%] Building CXX object lsd_slam/CMakeFiles/lsd_slam.dir/global_mapping/trackable_key_frame_search.cc.o
[ 28%] Building CXX object lsd_slam/CMakeFiles/lsd_slam.dir/global_mapping/g2o_type_sim3_sophus.cc.o
[ 31%] Building CXX object lsd_slam/CMakeFiles/lsd_slam.dir/global_mapping/fab_map.cc.o
In file included from /usr/local/include/opencv2/features2d/features2d.hpp:48:0,
from /home/vivJune_2019/lsd_slam_noros-master/thirdparty/openFabMap/include/bowmsctrainer.hpp:58,
from /home/vivJune_2019/lsd_slam_noros-master/thirdparty/openFabMap/include/openfabmap.hpp:59,
from /home/vivJune_2019/lsd_slam_noros-master/lsd_slam/global_mapping/fab_map.cc:41:
/usr/local/include/opencv2/features2d.hpp:231:19: error: conflicting declaration ‘typedef class cv::Feature2D cv::FeatureDetector’
typedef Feature2D FeatureDetector;
^
In file included from /home/vivJune_2019/lsd_slam_noros-master/lsd_slam/global_mapping/fab_map.cc:22:0:
/home/vivJune_2019/lsd_slam_noros-master/lsd_slam/global_mapping/fab_map.h:29:7: note: previous declaration as ‘class cv::FeatureDetector’
class FeatureDetector;
Соответствующее (частичное) содержание fab_map.h
(вероятно):
#include <opencv2/core/core.hpp>
namespace of2 {
class FabMap;
}
namespace cv {
class FeatureDetector;
class BOWImgDescriptorExtractor;
}