MARSLab-UMN / MARS-VINS

MARS-VINS binary release repository
http://mars.cs.umn.edu/
Other
116 stars 41 forks source link

link error, why ? #12

Closed haithink closed 6 years ago

haithink commented 6 years ago

error log:

/Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference tocv::calcOpticalFlowPyrLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::OutputArray const&, cv::Size, int, cv::TermCriteria, int, double)' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference to cv::DescriptorMatcher::match(cv::Mat const&, cv::Mat const&, std::vector<cv::DMatch, std::allocator<cv::DMatch> >&, cv::Mat const&) const' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference tocv::_OutputArray::_OutputArray(cv::Mat&)' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference to cv::_OutputArray::~_OutputArray()' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference tocv::_InputArray::_InputArray(cv::Mat const&)' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference to cv::_InputArray::~_InputArray()' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference tovtable for cv::_OutputArray' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference to cv::_InputArray::_InputArray(double const&)' /Downloads/thirdCode/MARS-VINS-master/core/lib_x86//radial_tangential//libmars_core.so: undefined reference tovtable for cv::_InputArray'`

but I have tested this so using ldd command:

xx-B85-HD3:~/Downloads/thirdCode/MARS-VINS-master/core/lib_x86/radial_tangential$ ldd libmars_core.so | grep opencv libopencv_core.so.3.0 => /usr/local/lib/libopencv_core.so.3.0 (0x00007f179a7f0000) libopencv_highgui.so.3.0 => /usr/local/lib/libopencv_highgui.so.3.0 (0x00007f179a5e3000) libopencv_video.so.3.0 => /usr/local/lib/libopencv_video.so.3.0 (0x00007f179a379000) libopencv_features2d.so.3.0 => /usr/local/lib/libopencv_features2d.so.3.0 (0x00007f179a0a6000) libopencv_imgproc.so.3.0 => /usr/local/lib/libopencv_imgproc.so.3.0 (0x00007f17978fd000) libopencv_imgcodecs.so.3.0 => /usr/local/lib/libopencv_imgcodecs.so.3.0 (0x00007f1797584000) libopencv_flann.so.3.0 => /usr/local/lib/libopencv_flann.so.3.0 (0x00007f1795f88000)

haithink commented 6 years ago

use command followed on my computer : nm -C libopencv_video.so.3.0 | grep calcOpticalFlowPyrLK cv::calcOpticalFlowPyrLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputOutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::Size_<int>, int, cv::TermCriteria, int, double)

It's different with the symbol cv::calcOpticalFlowPyrLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::OutputArray const&, cv::Size, int, cv::TermCriteria, int, double)

so the linker say:undefined reference tocv::calcOpticalFlowPyrLK(cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::OutputArray const&, cv::Size, int, cv::TermCriteria, int, double)

but why ? Is the opencv source code different ?

EMTYAZ-MARKET commented 3 years ago

Adel