FlannBasedMatcher匹配器构建

FlannBasedMatcher matcher building

本文关键字:构建 FlannBasedMatcher      更新时间:2023-10-16

一旦我添加到我的代码

FlannBasedMatcher matcher;
当构建 时,我得到以下错误

g++ -o "track" ./track。-lopencv_imgproc -lopencv_features2d-lopencv_core -lopencv_highgui -lopencv_video/usr/bin/ld: ./track. exe0:对符号的未定义引用"_ZN2cv5flann12SearchParamsC1Eifb"//usr/lib/x86_64-linux-gnu/libopencv_flann.so.2.4:错误添加符号:DSO从命令行丢失collect2:错误:ld返回1退出状态

任何想法?我正在运行Ubuntu

谢谢

先前问题的答案(奇怪的链接错误:命令行中缺少DSO)

应该在对象之后的命令行中提到库正在编译的文件

那么,在你的例子中:

  1. 找出_ZN2cv5flann12SearchParamsC1Eifb(实际上是"cv::flann::SearchParams::SearchParams(int, float, bool)")的定义:

nm -AD——define -only/usr/lib64/libopencv_so。 | grep_ZN2cv5flann12SearchParamsC1Eifb/usr/lib64/libopencv_flannso .2.4:0000000000029650_ZN2cv5flann12SearchParamsC1Eifb/usr/lib64/libopencv_flannso . 2.49:0000000000029650_ZN2cv5flann12SearchParamsC1Eifb

  • 在link命令被引用后立即添加-lopencv_flann:
  • g++ fbm。-lopencv_flann -lopencv_imgproc -lopencv_features2d -lopencv_nonfree -lopencv_core -lopencv_highgui -lopencv_video

    测试代码示例:

    #include <opencv2/features2d/features2d.hpp>
    using namespace cv;
    FlannBasedMatcher matcher;
    int main()
    {}