undefined reference to `DBoW2::FSurf64::toMat32F(std::vector<std::vector<float, std::allocator<float> >, std::allocator<std::vector<float, std::allocator<float> > > > const&, cv::Mat&)'
nonlinear1 opened this issue · comments
When I make the Kintinuous, I was confronted with the following linking errors:
undefined reference to DBoW2::FSurf64::toMat32F(std::vector<std::vector<float, std::allocator >, std::allocator<std::vector<float, std::allocator > > > const&, cv::Mat&)' undefined reference toDBoW2::FSurf64::distance(std::vector<float, std::allocator > const&, std::vector<float, std::allocator > const&)'
undefined reference to DBoW2::FSurf64::meanValue(std::vector<std::vector<float, std::allocator > const*, std::allocator<std::vector<float, std::allocator > const*> > const&, std::vector<float, std::allocator >&)' undefined reference toDBoW2::FSurf64::toString[abi:cxx11](std::vector<float, std::allocator > const&)'
I have install the DLib, DBoW2, DLoopDetector,again. and I don‘t know why? I think the directory is right for linker.
the directory are as follows:
DBoW2_DIR */usr/local/lib/cmake/DBoW2
DBoW2_INCLUDE_DIR */usr/local/include/DBoW2
DBoW2_LIBRARY */usr/local/lib/libDBoW2.so
DLib_DIR */usr/local/lib/cmake/DLib
DLib_INCLUDE_DIR */usr/local/include/DLib
DLib_LIBRARY */usr/local/lib/libDLib.so
DLoopDetector_DIR */usr/local/lib/cmake/DLoopDetector
DLoopDetector_INCLUDE_DIR */usr/local/include/DLoopDetector
DLoopDetector_LIBRARY *DLoopDetector_LIBRARY-NOTFOUND
my os is ubuntu16.04, the version for opencv is 2.4.13.
So could someone know reasons for these errors?
I solve this problem! I use the DLib1.0, DBoW1.0, DLoopDetector 1.0. All of them are the oldest version!!!
Sorry, I removed support for the non-free module of opencv in the current version. Version 1.1-nonfree should be fine too.