zoukankan      html  css  js  c++  java
  • VINS bug 调试 : undefined reference to `cv::FileStorage::FileStorage(std::__cxx11::basic_string<char, std::char_traits<char>,

    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:46: undefined reference to `cv::FileStorage::FileStorage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /usr/include/opencv4/opencv2/core/persistence.hpp:1264: undefined reference to `cv::read(cv::FileNode const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:54: undefined reference to `cv::FileNode::operator double() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:55: undefined reference to `cv::FileNode::operator int() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:56: undefined reference to `cv::FileNode::operator double() const'
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /usr/include/opencv4/opencv2/core/persistence.hpp:1264: undefined reference to `cv::read(cv::FileNode const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:70: undefined reference to `cv::FileNode::operator double() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:71: undefined reference to `cv::FileNode::operator double() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:72: undefined reference to `cv::FileNode::operator double() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:73: undefined reference to `cv::FileNode::operator double() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:74: undefined reference to `cv::FileNode::operator double() const'
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o:/home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:75: more undefined references to `cv::FileNode::operator double() const' follow
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:79: undefined reference to `cv::FileNode::operator int() const'
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:568: undefined reference to `cv::Mat::updateContinuityFlag()'
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:568: undefined reference to `cv::Mat::updateContinuityFlag()'
    CMakeFiles/vins_estimator.dir/src/parameters.cpp.o: In function `readParameters(ros::NodeHandle&)':
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:118: undefined reference to `cv::FileNode::operator double() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:119: undefined reference to `cv::FileNode::operator int() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:125: undefined reference to `cv::FileNode::operator int() const'
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/parameters.cpp:128: undefined reference to `cv::FileNode::operator double() const'
    CMakeFiles/vins_estimator.dir/src/estimator.cpp.o: In function `cv::Mat::Mat(int, int, int, void*, unsigned long) [clone .constprop.4076]':
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:568: undefined reference to `cv::Mat::updateContinuityFlag()'
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:561: undefined reference to `cv::error(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, int)'
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:548: undefined reference to `cv::error(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, int)'
    CMakeFiles/vins_estimator.dir/src/estimator.cpp.o: In function `void cv::cv2eigen<double>(cv::Mat const&, Eigen::Matrix<double, -1, -1, 0, -1, -1>&) [clone .constprop.3981]':
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:568: undefined reference to `cv::Mat::updateContinuityFlag()'
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:548: undefined reference to `cv::error(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, int)'
    CMakeFiles/vins_estimator.dir/src/estimator.cpp.o: In function `Estimator::initialStructure()':
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:1711: undefined reference to `cv::error(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*, char const*, int)'
    CMakeFiles/vins_estimator.dir/src/utility/visualization.cpp.o: In function `printStatistics(Estimator const&, double)':
    /home/isee324/catkin_ws/src/VINS-Mono-master/vins_estimator/src/utility/visualization.cpp:79: undefined reference to `cv::FileStorage::FileStorage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    CMakeFiles/vins_estimator.dir/src/utility/visualization.cpp.o: In function `printStatistics(Estimator const&, double)':
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:568: undefined reference to `cv::Mat::updateContinuityFlag()'
    /usr/include/opencv4/opencv2/core/mat.inl.hpp:568: undefined reference to `cv::Mat::updateContinuityFlag()'
    CMakeFiles/vins_estimator.dir/src/utility/visualization.cpp.o: In function `printStatistics(Estimator const&, double)':
    /usr/include/opencv4/opencv2/core/persistence.hpp:1219: undefined reference to `cv::operator<<(cv::FileStorage&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    /usr/include/opencv4/opencv2/core/persistence.hpp:1208: undefined reference to `cv::write(cv::FileStorage&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::Mat const&)'
    /usr/include/opencv4/opencv2/core/persistence.hpp:1219: undefined reference to `cv::operator<<(cv::FileStorage&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
    /usr/include/opencv4/opencv2/core/persistence.hpp:1208: undefined reference to `cv::write(cv::FileStorage&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::Mat const&)'

    在VINS 的catkin_make 过程中,出现了以上的undefined问题,网上是了很多办法都不行,最后看到一个关于opencv路径的问题,这里的路径是:

    /usr/include/opencv4/opencv2

    很是奇怪,所以更改了cv_bridgeConfig.cmake里面的include 语句。

    需要用到下面的命令行:

    pkg-config --cflags opencv(查看系统的opencv路径在那里)

    我的路径显示的是  -I/usr/local/include/opencv           -I/usr/local/include

    在cv_bridgeConfig.cmake里将原来的路径改为以后两个路经。

    原本是这个路经  set(_include_dirs "include;/usr/local/include;/usr/local/include/opencv4")
    改完后 是:   set(_include_dirs "include;/usr/local/include;/usr/local/include/opencv")

    然后,catkin_make ,

    done : ) !

  • 相关阅读:
    设计模式之单例模式
    设计模式之组合模式
    SVN搭建简单教程
    添加Silverlight应用到HTML
    动态修改配置文件
    Ajax
    jQuery 事件方法
    Java和JavaScript对账户实现掩码并四个一组分隔
    一种简单实现当前时间是否在工作时间内的方法
    Postman接口自动化测试实例用到的完整的SM2前端加密算法代码
  • 原文地址:https://www.cnblogs.com/xsy123/p/14488021.html
Copyright © 2011-2022 走看看