Flann功能未解决的外部

时间:2012-08-28 10:57:26

标签: opencv

我正在尝试从OpenCV运行其中一个教程示例。它是关于使用基于Flann的关键点匹配来查找已知对象。代码可以在Features2D + Homography to find a known object找到。

我知道你会问“你有链接库吗?”或类似的问题。是的,我已经使用OpenCV 3周了,各种例子都使用了几乎所有的库。直到今天都没有问题。

所以我将这些库依赖添加到Visual Studio的链接器输入设置中。包含目录也正常工作。

C:\OpenCV2.4\lib\opencv_core242d.lib
C:\OpenCV2.4\lib\opencv_highgui242d.lib
C:\OpenCV2.4\lib\opencv_video242d.lib
C:\OpenCV2.4\lib\opencv_ml242d.lib
C:\OpenCV2.4\lib\opencv_legacy242d.lib
C:\OpenCV2.4\lib\opencv_imgproc242d.lib
C:\OpenCV2.4\lib\opencv_objdetect242d.lib
C:\OpenCV2.4\lib\opencv_flann242d.lib
C:\OpenCV2.4\lib\opencv_nonfree242d.lib
C:\OpenCV2.4\lib\opencv_calib3d242d.lib

我得到的错误是链接器错误。它无法解决Flann的功能。

1>------ Build started: Project: flannMatch, Configuration: Debug Win32 ------
1>flannMatch.obj : error LNK2019: unresolved external symbol "void __cdecl cv::drawMatches(class cv::Mat const &,class std::vector<class cv::KeyPoint,class std::allocator<class cv::KeyPoint> > const &,class cv::Mat const &,class std::vector<class cv::KeyPoint,class std::allocator<class cv::KeyPoint> > const &,class std::vector<struct cv::DMatch,class std::allocator<struct cv::DMatch> > const &,class cv::Mat &,class cv::Scalar_<double> const &,class cv::Scalar_<double> const &,class std::vector<char,class std::allocator<char> > const &,int)" (?drawMatches@cv@@YAXABVMat@1@ABV?$vector@VKeyPoint@cv@@V?$allocator@VKeyPoint@cv@@@std@@@std@@01ABV?$vector@UDMatch@cv@@V?$allocator@UDMatch@cv@@@std@@@4@AAV21@ABV?$Scalar_@N@1@4ABV?$vector@DV?$allocator@D@std@@@4@H@Z) referenced in function _main
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: void __thiscall cv::DescriptorMatcher::match(class cv::Mat const &,class cv::Mat const &,class std::vector<struct cv::DMatch,class std::allocator<struct cv::DMatch> > &,class cv::Mat const &)const " (?match@DescriptorMatcher@cv@@QBEXABVMat@2@0AAV?$vector@UDMatch@cv@@V?$allocator@UDMatch@cv@@@std@@@std@@0@Z) referenced in function_main
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: __thiscall cv::FlannBasedMatcher::FlannBasedMatcher(class cv::Ptr<struct cv::flann::IndexParams> const &,class cv::Ptr<struct cv::flann::SearchParams> const &)" (??0FlannBasedMatcher@cv@@QAE@ABV?$Ptr@UIndexParams@flann@cv@@@1@ABV?$Ptr@USearchParams@flann@cv@@@1@@Z) referenced in function _main
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: void __thiscall cv::DescriptorExtractor::compute(class cv::Mat const &,class std::vector<class cv::KeyPoint,class std::allocator<class cv::KeyPoint> > &,class cv::Mat &)const " (?compute@DescriptorExtractor@cv@@QBEXABVMat@2@AAV?$vector@VKeyPoint@cv@@V?$allocator@VKeyPoint@cv@@@std@@@std@@AAV32@@Z) referenced in function _main
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: void __thiscall cv::FeatureDetector::detect(class cv::Mat const &,class std::vector<class cv::KeyPoint,class std::allocator<class cv::KeyPoint> > &,class cv::Mat const &)const " (?detect@FeatureDetector@cv@@QBEXABVMat@2@AAV?$vector@VKeyPoint@cv@@V?$allocator@VKeyPoint@cv@@@std@@@std@@0@Z) referenced in function _main
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall cv::DescriptorMatcher::~DescriptorMatcher(void)" (??1DescriptorMatcher@cv@@UAE@XZ) referenced in function "public: virtual __thiscall cv::FlannBasedMatcher::~FlannBasedMatcher(void)" (??1FlannBasedMatcher@cv@@UAE@XZ)
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall cv::DescriptorMatcher::DescriptorCollection::~DescriptorCollection(void)" (??1DescriptorCollection@DescriptorMatcher@cv@@UAE@XZ) referenced in function "public: virtual __thiscall cv::FlannBasedMatcher::~FlannBasedMatcher(void)" (??1FlannBasedMatcher@cv@@UAE@XZ)
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall cv::FeatureDetector::~FeatureDetector(void)" (??1FeatureDetector@cv@@UAE@XZ) referenced in function "public: virtual __thiscall cv::Feature2D::~Feature2D(void)" (??1Feature2D@cv@@UAE@XZ)
1>flannMatch.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall cv::DescriptorExtractor::~DescriptorExtractor(void)" (??1DescriptorExtractor@cv@@UAE@XZ) referenced in function "public: virtual __thiscall cv::Feature2D::~Feature2D(void)" (??1Feature2D@cv@@UAE@XZ)

我也知道冲浪和筛选被转移到非自由,这要归功于其中的一个问题。乍一看,我认为这可能是因为我有两个版本的OpenCV(2.2和2.4),因此它有所作为。所以我删除了2.2并尝试运行另一个程序。它工作正常但仍然没有消失。

所以我的问题是,我在这里错过了什么?还有另一个库依赖吗?什么是我看不到的?任何帮助表示赞赏。

- 的修改 -

我怎么能看不到它?我真的很抱歉发布这样一个简单的问题。我觉得很蠢。我忘了添加这种依赖。

C:\OpenCV2.4\lib\opencv_features2d242d.lib

我不认为有人会再次错过这个。

1 个答案:

答案 0 :(得分:2)

我怎么能看不到它?我真的很抱歉发布这样一个简单的问题。我觉得很蠢。我忘了添加这种依赖性。

C:\OpenCV2.4\lib\opencv_features2d242d.lib

我不认为有人会再次错过这个。

相关问题