编译GVINS时遇到的问题及解决方法

一.使用OpenCV4导致需要修改的地方
1.CV_BGR2GRAY:改为 cv::COLOR_BGR2GRAY
2.CV_GRAY2RGB :改为 cv::COLOR_GRAY2RGB
3.CV_CALIB_CB_ADAPTIVE_THRESH :改为 cv::CALIB_CB_ADAPTIVE_THRESH 
4.CV_CALIB_CB_NORMALIZE_IMAGE :改为 cv::CALIB_CB_NORMALIZE_IMAGE
5.CV_CALIB_CB_FILTER_QUADS  :改为 cv::CALIB_CB_FILTER_QUADS
6.CV_CALIB_CB_FAST_CHECK  :改为 cv::CALIB_CB_FAST_CHECK
7.CV_AA :改为 cv::LINE_AA
8.CV_THRESH_BINARY_INV :改为 cv::THRESH_BINARY_INV
9.CV_CHAIN_APPROX_SIMPLE/CV_RETR_TREE :

     增加头文件 :

     #include  


二.使用C++14编译导致需要修改的地方
提示类似此类错误:
undefined reference to cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>
解决方法,修改CMakeLIsts.txt(feature_tracter/estimator/camera_model下面各有一个):
set(CMAKE_CXX_FLAGS "-std=c++11") --->>>>  set(CMAKE_CXX_FLAGS "-std=c++14")

三.由于电脑上装有多个版本OpenCV导致需要修改的地方

提示上面“二”中的错误还有可能是由于电脑上有不同版本的OpenCV,找到的版本不对导致,需要以下修改:

在各个CMakeLists.txt里面find_package的时候明确指定OpenCV的版本:

find_package(OpenCV REQUIRED)  ,改为:find_package(OpenCV 4.0.0 REQUIRED)

你可能感兴趣的:(SLAM,c++,开发语言,GVINS)