使用openMVG作为第三方库时出现的BUG

  1. BUG如下所示:     
  2.   
    //usr/local/lib/libopenMVG_features.a(AKAZE.cpp.o): In function `openMVG::features::AKAZE::Do_Subpixel_Refinement(std::vector<openMVG::features::AKAZEKeypoint, std::allocator<openMVG::features::AKAZEKeypoint> >&) const':
    AKAZE.cpp:(.text+0x3db): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_features.a(AKAZE.cpp.o): In function `openMVG::features::AKAZE::Feature_Detection(std::vector<openMVG::features::AKAZEKeypoint, std::allocator<openMVG::features::AKAZEKeypoint> >&) const [clone ._omp_fn.4]':
    AKAZE.cpp:(.text+0xad5): undefined reference to `GOMP_loop_dynamic_start'
    AKAZE.cpp:(.text+0x11ee): undefined reference to `GOMP_loop_dynamic_next'
    AKAZE.cpp:(.text+0x1200): undefined reference to `GOMP_loop_end_nowait'
    //usr/local/lib/libopenMVG_features.a(AKAZE.cpp.o): In function `openMVG::features::AKAZE::Feature_Detection(std::vector<openMVG::features::AKAZEKeypoint, std::allocator<openMVG::features::AKAZEKeypoint> >&) const':
    AKAZE.cpp:(.text+0x13fc): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_features.a(AKAZE.cpp.o): In function `openMVG::features::AKAZE::Do_Subpixel_Refinement(std::vector<openMVG::features::AKAZEKeypoint, std::allocator<openMVG::features::AKAZEKeypoint> >&) const [clone ._omp_fn.5]':
    AKAZE.cpp:(.text+0x3bad): undefined reference to `GOMP_loop_dynamic_start'
    AKAZE.cpp:(.text+0x3c18): undefined reference to `GOMP_critical_start'
    AKAZE.cpp:(.text+0x3c4e): undefined reference to `GOMP_critical_end'
    AKAZE.cpp:(.text+0x3c68): undefined reference to `GOMP_loop_dynamic_next'
    AKAZE.cpp:(.text+0x3c75): undefined reference to `GOMP_loop_end_nowait'
    //usr/local/lib/libopenMVG_features.a(AKAZE.cpp.o): In function `void openMVG::image::ImageFEDCentralCPPThread<openMVG::image::Image<float> >(openMVG::image::Image<float> const&, openMVG::image::Image<float> const&, openMVG::image::Image<float>::Tpixel, openMVG::image::Image<float>&) [clone ._omp_fn.3]':
    AKAZE.cpp:(.text._ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_._omp_fn.3[_ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_]+0x5e): undefined reference to `GOMP_loop_dynamic_start'
    AKAZE.cpp:(.text._ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_._omp_fn.3[_ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_]+0xc1): undefined reference to `GOMP_loop_dynamic_next'
    AKAZE.cpp:(.text._ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_._omp_fn.3[_ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_]+0xca): undefined reference to `GOMP_loop_end_nowait'
    //usr/local/lib/libopenMVG_features.a(AKAZE.cpp.o): In function `void openMVG::image::ImageFEDCentralCPPThread<openMVG::image::Image<float> >(openMVG::image::Image<float> const&, openMVG::image::Image<float> const&, openMVG::image::Image<float>::Tpixel, openMVG::image::Image<float>&)':
    AKAZE.cpp:(.text._ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_[_ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_]+0x3d): undefined reference to `omp_get_max_threads'
    AKAZE.cpp:(.text._ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_[_ZN7openMVG5image24ImageFEDCentralCPPThreadINS0_5ImageIfEEEEvRKT_S6_NS4_6TpixelERS4_]+0x237): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `float flann::search_with_ground_truth<flann::KMeansIndex<flann::L2<unsigned char> >, flann::L2<unsigned char> >(flann::KMeansIndex<flann::L2<unsigned char> >&, flann::Matrix<flann::L2<unsigned char>::ElementType> const&, flann::Matrix<flann::L2<unsigned char>::ElementType> const&, flann::Matrix<unsigned long> const&, int, int, float&, flann::L2<unsigned char>::ResultType&, flann::L2<unsigned char> const&, int) [clone .constprop.2820]':
    regions_matcher.cpp:(.text+0x1d73): undefined reference to `GOMP_parallel'
    regions_matcher.cpp:(.text+0x21e7): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `float flann::search_with_ground_truth<flann::KMeansIndex<flann::L2<float> >, flann::L2<float> >(flann::KMeansIndex<flann::L2<float> >&, flann::Matrix<flann::L2<float>::ElementType> const&, flann::Matrix<flann::L2<float>::ElementType> const&, flann::Matrix<unsigned long> const&, int, int, float&, flann::L2<float>::ResultType&, flann::L2<float> const&, int) [clone .constprop.2838]':
    regions_matcher.cpp:(.text+0x29bf): undefined reference to `GOMP_parallel'
    regions_matcher.cpp:(.text+0x2d98): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o):regions_matcher.cpp:(.text+0x3577): more undefined references to `GOMP_parallel' follow
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::NNIndex<flann::L2<double> >::knnSearch(flann::Matrix<double> const&, flann::Matrix<unsigned long>&, flann::Matrix<double>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.4]':
    regions_matcher.cpp:(.text+0x60f7): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x60ff): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text+0x628d): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::NNIndex<flann::L2<unsigned char> >::knnSearch(flann::Matrix<unsigned char> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.15]':
    regions_matcher.cpp:(.text+0x63b3): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x63bb): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text+0x654d): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::NNIndex<flann::L2<float> >::knnSearch(flann::Matrix<float> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.9]':
    regions_matcher.cpp:(.text+0x6673): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x667b): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text+0x680d): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::Hamming<unsigned char>, (openMVG::matching::HNSWMETRIC)2>::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<unsigned int, std::allocator<unsigned int> >*, unsigned long) [clone ._omp_fn.0]':
    regions_matcher.cpp:(.text+0x68b2): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x68b9): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<float, openMVG::matching::L2<float>, (openMVG::matching::HNSWMETRIC)0>::SearchNeighbours(float const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<float, std::allocator<float> >*, unsigned long) [clone ._omp_fn.5]':
    regions_matcher.cpp:(.text+0x6ab2): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x6ab9): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L2<unsigned char>, (openMVG::matching::HNSWMETRIC)0>::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<int, std::allocator<int> >*, unsigned long) [clone ._omp_fn.11]':
    regions_matcher.cpp:(.text+0x6cc2): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x6cc9): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L1<unsigned char>, (openMVG::matching::HNSWMETRIC)1>::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<int, std::allocator<int> >*, unsigned long) [clone ._omp_fn.10]':
    regions_matcher.cpp:(.text+0x6ec2): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x6ec9): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::NNIndex<flann::L2<double> >::knnSearch(flann::Matrix<double> const&, flann::Matrix<unsigned long>&, flann::Matrix<double>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.3]':
    regions_matcher.cpp:(.text+0x74ae): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x74b5): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text+0x77a8): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::NNIndex<flann::L2<float> >::knnSearch(flann::Matrix<float> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.8]':
    regions_matcher.cpp:(.text+0x7c25): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x7c2d): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text+0x7d8d): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::NNIndex<flann::L2<unsigned char> >::knnSearch(flann::Matrix<unsigned char> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.14]':
    regions_matcher.cpp:(.text+0x7ec5): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text+0x7ecd): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text+0x802d): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<double> >::knnSearch(flann::Matrix<double> const&, flann::Matrix<unsigned long>&, flann::Matrix<double>&, unsigned long, flann::SearchParams const&) const':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xaa): undefined reference to `GOMP_parallel'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0x117): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::NNIndex<flann::L2<double> >::knnSearch(flann::Matrix<double> const&, flann::Matrix<unsigned long>&, flann::Matrix<double>&, unsigned long, flann::SearchParams const&) const':
    regions_matcher.cpp:(.text._ZNK5flann7NNIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE[_ZNK5flann7NNIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xe2): undefined reference to `GOMP_parallel'
    regions_matcher.cpp:(.text._ZNK5flann7NNIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE[_ZNK5flann7NNIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0x157): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<float> >::knnSearch(flann::Matrix<float> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xaa): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o):regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0x117): more undefined references to `GOMP_parallel' follow
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L1<unsigned char>, (openMVG::matching::HNSWMETRIC)1>::Build(unsigned char const*, int, int) [clone ._omp_fn.18]':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE5BuildEPKhii._omp_fn.18[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE5BuildEPKhii]+0x12): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE5BuildEPKhii._omp_fn.18[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE5BuildEPKhii]+0x19): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L2<unsigned char>, (openMVG::matching::HNSWMETRIC)0>::Build(unsigned char const*, int, int) [clone ._omp_fn.19]':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE5BuildEPKhii._omp_fn.19[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE5BuildEPKhii]+0x12): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE5BuildEPKhii._omp_fn.19[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE5BuildEPKhii]+0x19): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L1<unsigned char>, (openMVG::matching::HNSWMETRIC)1>::Build(unsigned char const*, int, int)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE5BuildEPKhii[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE5BuildEPKhii]+0x21b): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L2<unsigned char>, (openMVG::matching::HNSWMETRIC)0>::Build(unsigned char const*, int, int)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE5BuildEPKhii[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE5BuildEPKhii]+0x24d): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<float, openMVG::matching::L2<float>, (openMVG::matching::HNSWMETRIC)0>::Build(float const*, int, int) [clone ._omp_fn.17]':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIfNS0_2L2IfEELNS0_10HNSWMETRICE0EE5BuildEPKfii._omp_fn.17[_ZN7openMVG8matching11HNSWMatcherIfNS0_2L2IfEELNS0_10HNSWMETRICE0EE5BuildEPKfii]+0x12): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIfNS0_2L2IfEELNS0_10HNSWMETRICE0EE5BuildEPKfii._omp_fn.17[_ZN7openMVG8matching11HNSWMatcherIfNS0_2L2IfEELNS0_10HNSWMETRICE0EE5BuildEPKfii]+0x19): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<float, openMVG::matching::L2<float>, (openMVG::matching::HNSWMETRIC)0>::Build(float const*, int, int)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIfNS0_2L2IfEELNS0_10HNSWMETRICE0EE5BuildEPKfii[_ZN7openMVG8matching11HNSWMatcherIfNS0_2L2IfEELNS0_10HNSWMETRICE0EE5BuildEPKfii]+0x54b): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::Hamming<unsigned char>, (openMVG::matching::HNSWMETRIC)2>::Build(unsigned char const*, int, int) [clone ._omp_fn.16]':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_7HammingIhEELNS0_10HNSWMETRICE2EE5BuildEPKhii._omp_fn.16[_ZN7openMVG8matching11HNSWMatcherIhNS0_7HammingIhEELNS0_10HNSWMETRICE2EE5BuildEPKhii]+0x12): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_7HammingIhEELNS0_10HNSWMETRICE2EE5BuildEPKhii._omp_fn.16[_ZN7openMVG8matching11HNSWMatcherIhNS0_7HammingIhEELNS0_10HNSWMETRICE2EE5BuildEPKhii]+0x19): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::Hamming<unsigned char>, (openMVG::matching::HNSWMETRIC)2>::Build(unsigned char const*, int, int)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_7HammingIhEELNS0_10HNSWMETRICE2EE5BuildEPKhii[_ZN7openMVG8matching11HNSWMatcherIhNS0_7HammingIhEELNS0_10HNSWMETRICE2EE5BuildEPKhii]+0x51c): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::ArrayMatcher_Kdtree_Flann<double, flann::L2<double> >::SearchNeighbours(double const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<double, std::allocator<double> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching25ArrayMatcher_Kdtree_FlannIdN5flann2L2IdEEE16SearchNeighboursEPKdiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IdSaIdEEm[_ZN7openMVG8matching25ArrayMatcher_Kdtree_FlannIdN5flann2L2IdEEE16SearchNeighboursEPKdiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IdSaIdEEm]+0x1cf): undefined reference to `omp_get_max_threads'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::ArrayMatcher_Kdtree_Flann<float, flann::L2<float> >::SearchNeighbours(float const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<float, std::allocator<float> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching25ArrayMatcher_Kdtree_FlannIfN5flann2L2IfEEE16SearchNeighboursEPKfiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IfSaIfEEm[_ZN7openMVG8matching25ArrayMatcher_Kdtree_FlannIfN5flann2L2IfEEE16SearchNeighboursEPKfiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IfSaIfEEm]+0x196): undefined reference to `omp_get_max_threads'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::ArrayMatcher_Kdtree_Flann<unsigned char, flann::L2<unsigned char> >::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<float, std::allocator<float> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching25ArrayMatcher_Kdtree_FlannIhN5flann2L2IhEEE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IfSaIfEEm[_ZN7openMVG8matching25ArrayMatcher_Kdtree_FlannIhN5flann2L2IhEEE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IfSaIfEEm]+0x192): undefined reference to `omp_get_max_threads'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<double> >::knnSearch(flann::Matrix<double> const&, flann::Matrix<unsigned long>&, flann::Matrix<double>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.1]':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.1[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xd1): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.1[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xd8): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.1[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0x2d5): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<float> >::knnSearch(flann::Matrix<float> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.6]':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.6[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xcb): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.6[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xd2): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.6[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0x2be): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L1<unsigned char>, (openMVG::matching::HNSWMETRIC)1>::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<int, std::allocator<int> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IiSaIiEEm[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IiSaIiEEm]+0xbd): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L2<unsigned char>, (openMVG::matching::HNSWMETRIC)0>::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<int, std::allocator<int> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IiSaIiEEm[_ZN7openMVG8matching11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS9_EEPS8_IiSaIiEEm]+0xbd): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::RegionsMatcherT<openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L1<unsigned char>, (openMVG::matching::HNSWMETRIC)1> >::Match(openMVG::features::Regions const&, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >&)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EEEE5MatchERKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE[_ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EEEE5MatchERKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE]+0xd1): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::RegionsMatcherT<openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L2<unsigned char>, (openMVG::matching::HNSWMETRIC)0> >::Match(openMVG::features::Regions const&, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >&)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EEEE5MatchERKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE[_ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EEEE5MatchERKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE]+0xd1): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::RegionsMatcherT<openMVG::matching::HNSWMatcher<unsigned char, openMVG::matching::L2<unsigned char>, (openMVG::matching::HNSWMETRIC)0> >::MatchDistanceRatio(float, openMVG::features::Regions const&, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >&)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EEEE18MatchDistanceRatioEfRKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE[_ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L2IhEELNS0_10HNSWMETRICE0EEEE18MatchDistanceRatioEfRKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE]+0xf9): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o):regions_matcher.cpp:(.text._ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EEEE18MatchDistanceRatioEfRKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE[_ZN7openMVG8matching15RegionsMatcherTINS0_11HNSWMatcherIhNS0_2L1IhEELNS0_10HNSWMETRICE1EEEE18MatchDistanceRatioEfRKNS_8features7RegionsERSt6vectorINS0_8IndMatchESaISD_EE]+0xf9): more undefined references to `GOMP_parallel' follow
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<double> >::knnSearch(flann::Matrix<double> const&, flann::Matrix<unsigned long>&, flann::Matrix<double>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.2]':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.2[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xa9): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.2[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xb1): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.2[_ZNK5flann8LshIndexINS_2L2IdEEE9knnSearchERKNS_6MatrixIdEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0x266): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<unsigned char> >::knnSearch(flann::Matrix<unsigned char> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.13]':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE._omp_fn.13[_ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE]+0xbe): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE._omp_fn.13[_ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE]+0xc5): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE._omp_fn.13[_ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE]+0x7f7): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<float> >::knnSearch(flann::Matrix<float> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.7]':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.7[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xa4): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.7[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0xac): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE._omp_fn.7[_ZNK5flann8LshIndexINS_2L2IfEEE9knnSearchERKNS_6MatrixIfEERNS4_ImEERS5_mRKNS_12SearchParamsE]+0x266): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::ArrayMatcherBruteForce<unsigned char, openMVG::matching::Hamming<unsigned char> >::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<unsigned int, std::allocator<unsigned int> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching22ArrayMatcherBruteForceIhNS0_7HammingIhEEE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IjSaIjEEm[_ZN7openMVG8matching22ArrayMatcherBruteForceIhNS0_7HammingIhEEE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IjSaIjEEm]+0x210): undefined reference to `pthread_create'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::ArrayMatcherBruteForce<double, openMVG::matching::L2<double> >::SearchNeighbours(double const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<double, std::allocator<double> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching22ArrayMatcherBruteForceIdNS0_2L2IdEEE16SearchNeighboursEPKdiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IdSaIdEEm[_ZN7openMVG8matching22ArrayMatcherBruteForceIdNS0_2L2IdEEE16SearchNeighboursEPKdiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IdSaIdEEm]+0x210): undefined reference to `pthread_create'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::ArrayMatcherBruteForce<float, openMVG::matching::L2<float> >::SearchNeighbours(float const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<float, std::allocator<float> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching22ArrayMatcherBruteForceIfNS0_2L2IfEEE16SearchNeighboursEPKfiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IfSaIfEEm[_ZN7openMVG8matching22ArrayMatcherBruteForceIfNS0_2L2IfEEE16SearchNeighboursEPKfiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IfSaIfEEm]+0x210): undefined reference to `pthread_create'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `openMVG::matching::ArrayMatcherBruteForce<unsigned char, openMVG::matching::L2<unsigned char> >::SearchNeighbours(unsigned char const*, int, std::vector<openMVG::matching::IndMatch, std::allocator<openMVG::matching::IndMatch> >*, std::vector<int, std::allocator<int> >*, unsigned long)':
    regions_matcher.cpp:(.text._ZN7openMVG8matching22ArrayMatcherBruteForceIhNS0_2L2IhEEE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IiSaIiEEm[_ZN7openMVG8matching22ArrayMatcherBruteForceIhNS0_2L2IhEEE16SearchNeighboursEPKhiPSt6vectorINS0_8IndMatchESaIS8_EEPS7_IiSaIiEEm]+0x1f9): undefined reference to `pthread_create'
    //usr/local/lib/libopenMVG_matching.a(regions_matcher.cpp.o): In function `flann::LshIndex<flann::L2<unsigned char> >::knnSearch(flann::Matrix<unsigned char> const&, flann::Matrix<unsigned long>&, flann::Matrix<float>&, unsigned long, flann::SearchParams const&) const [clone ._omp_fn.12]':
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE._omp_fn.12[_ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE]+0xf2): undefined reference to `omp_get_num_threads'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE._omp_fn.12[_ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE]+0xf9): undefined reference to `omp_get_thread_num'
    regions_matcher.cpp:(.text._ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE._omp_fn.12[_ZNK5flann8LshIndexINS_2L2IhEEE9knnSearchERKNS_6MatrixIhEERNS4_ImEERNS4_IfEEmRKNS_12SearchParamsE]+0x8d1): undefined reference to `GOMP_barrier'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::WritePngStream(_IO_FILE*, std::vector<unsigned char, std::allocator<unsigned char> > const&, int, int, int)':
    image_io.cpp:(.text+0x5a9): undefined reference to `png_create_write_struct'
    image_io.cpp:(.text+0x5bb): undefined reference to `png_create_info_struct'
    image_io.cpp:(.text+0x5d2): undefined reference to `png_init_io'
    image_io.cpp:(.text+0x5f7): undefined reference to `png_destroy_write_struct'
    image_io.cpp:(.text+0x64f): undefined reference to `png_set_IHDR'
    image_io.cpp:(.text+0x662): undefined reference to `png_write_info'
    image_io.cpp:(.text+0x692): undefined reference to `png_write_row'
    image_io.cpp:(.text+0x6a3): undefined reference to `png_write_end'
    image_io.cpp:(.text+0x6b2): undefined reference to `png_destroy_write_struct'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::ReadPngStream(_IO_FILE*, std::vector<unsigned char, std::allocator<unsigned char> >*, int*, int*, int*)':
    image_io.cpp:(.text+0x7eb): undefined reference to `png_sig_cmp'
    image_io.cpp:(.text+0x839): undefined reference to `png_create_read_struct'
    image_io.cpp:(.text+0x854): undefined reference to `png_create_info_struct'
    image_io.cpp:(.text+0x874): undefined reference to `png_init_io'
    image_io.cpp:(.text+0x883): undefined reference to `png_set_sig_bytes'
    image_io.cpp:(.text+0x892): undefined reference to `png_read_info'
    image_io.cpp:(.text+0x8cf): undefined reference to `png_get_IHDR'
    image_io.cpp:(.text+0x8fd): undefined reference to `png_get_valid'
    image_io.cpp:(.text+0x924): undefined reference to `png_get_gAMA'
    image_io.cpp:(.text+0x93b): undefined reference to `png_read_update_info'
    image_io.cpp:(.text+0x966): undefined reference to `png_get_IHDR'
    image_io.cpp:(.text+0x979): undefined reference to `png_get_rowbytes'
    image_io.cpp:(.text+0x9ba): undefined reference to `png_get_channels'
    image_io.cpp:(.text+0xb33): undefined reference to `png_read_image'
    image_io.cpp:(.text+0xb3f): undefined reference to `png_read_end'
    image_io.cpp:(.text+0xb58): undefined reference to `png_destroy_read_struct'
    image_io.cpp:(.text+0xb72): undefined reference to `png_destroy_read_struct'
    image_io.cpp:(.text+0xb94): undefined reference to `png_set_gamma'
    image_io.cpp:(.text+0xba6): undefined reference to `png_set_expand'
    image_io.cpp:(.text+0xbb1): undefined reference to `png_set_expand'
    image_io.cpp:(.text+0xbc6): undefined reference to `png_set_expand'
    image_io.cpp:(.text+0xbd1): undefined reference to `png_set_strip_16'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::WritePng(char const*, std::vector<unsigned char, std::allocator<unsigned char> > const&, int, int, int)':
    image_io.cpp:(.text+0x1249): undefined reference to `png_create_write_struct'
    image_io.cpp:(.text+0x125b): undefined reference to `png_create_info_struct'
    image_io.cpp:(.text+0x1272): undefined reference to `png_init_io'
    image_io.cpp:(.text+0x12a2): undefined reference to `png_destroy_write_struct'
    image_io.cpp:(.text+0x1707): undefined reference to `png_set_IHDR'
    image_io.cpp:(.text+0x171a): undefined reference to `png_write_info'
    image_io.cpp:(.text+0x1742): undefined reference to `png_write_row'
    image_io.cpp:(.text+0x1758): undefined reference to `png_write_end'
    image_io.cpp:(.text+0x1767): undefined reference to `png_destroy_write_struct'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::Read_JPG_ImageHeader(char const*, openMVG::image::ImageHeader*)':
    image_io.cpp:(.text+0x3085): undefined reference to `jpeg_std_error'
    image_io.cpp:(.text+0x30b9): undefined reference to `jpeg_destroy_decompress'
    image_io.cpp:(.text+0x3116): undefined reference to `jpeg_CreateDecompress'
    image_io.cpp:(.text+0x3123): undefined reference to `jpeg_stdio_src'
    image_io.cpp:(.text+0x3130): undefined reference to `jpeg_read_header'
    image_io.cpp:(.text+0x3138): undefined reference to `jpeg_start_decompress'
    image_io.cpp:(.text+0x3167): undefined reference to `jpeg_destroy_decompress'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::WriteTiff(char const*, std::vector<unsigned char, std::allocator<unsigned char> > const&, int, int, int)':
    image_io.cpp:(.text+0x378b): undefined reference to `TIFFOpen'
    image_io.cpp:(.text+0x37a9): undefined reference to `TIFFSetField'
    image_io.cpp:(.text+0x37bb): undefined reference to `TIFFSetField'
    image_io.cpp:(.text+0x37cf): undefined reference to `TIFFSetField'
    image_io.cpp:(.text+0x37e3): undefined reference to `TIFFSetField'
    image_io.cpp:(.text+0x37f7): undefined reference to `TIFFSetField'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o):image_io.cpp:(.text+0x3809): more undefined references to `TIFFSetField' follow
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::WriteTiff(char const*, std::vector<unsigned char, std::allocator<unsigned char> > const&, int, int, int)':
    image_io.cpp:(.text+0x387c): undefined reference to `TIFFWriteScanline'
    image_io.cpp:(.text+0x3888): undefined reference to `TIFFClose'
    image_io.cpp:(.text+0x38c4): undefined reference to `TIFFClose'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::Read_PNG_ImageHeader(char const*, openMVG::image::ImageHeader*)':
    image_io.cpp:(.text+0x3e8a): undefined reference to `png_sig_cmp'
    image_io.cpp:(.text+0x3ead): undefined reference to `png_create_read_struct'
    image_io.cpp:(.text+0x3ecc): undefined reference to `png_create_info_struct'
    image_io.cpp:(.text+0x3ee9): undefined reference to `png_init_io'
    image_io.cpp:(.text+0x3ef8): undefined reference to `png_set_sig_bytes'
    image_io.cpp:(.text+0x3f07): undefined reference to `png_read_info'
    image_io.cpp:(.text+0x3f34): undefined reference to `png_get_IHDR'
    image_io.cpp:(.text+0x3f62): undefined reference to `png_destroy_info_struct'
    image_io.cpp:(.text+0x3f70): undefined reference to `png_destroy_read_struct'
    image_io.cpp:(.text+0x3f8a): undefined reference to `png_destroy_read_struct'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::Read_TIFF_ImageHeader(char const*, openMVG::image::ImageHeader*)':
    image_io.cpp:(.text+0x4cc2): undefined reference to `TIFFOpen'
    image_io.cpp:(.text+0x4ce8): undefined reference to `TIFFGetField'
    image_io.cpp:(.text+0x4cfc): undefined reference to `TIFFGetField'
    image_io.cpp:(.text+0x4d04): undefined reference to `TIFFClose'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::WriteJpgStream(_IO_FILE*, std::vector<unsigned char, std::allocator<unsigned char> > const&, int, int, int, int)':
    image_io.cpp:(.text+0x56d5): undefined reference to `jpeg_std_error'
    image_io.cpp:(.text+0x56ef): undefined reference to `jpeg_CreateCompress'
    image_io.cpp:(.text+0x56fb): undefined reference to `jpeg_stdio_dest'
    image_io.cpp:(.text+0x5b0b): undefined reference to `jpeg_destroy_compress'
    image_io.cpp:(.text+0x5b2f): undefined reference to `jpeg_set_defaults'
    image_io.cpp:(.text+0x5b3f): undefined reference to `jpeg_set_quality'
    image_io.cpp:(.text+0x5b4c): undefined reference to `jpeg_start_compress'
    image_io.cpp:(.text+0x5bb2): undefined reference to `jpeg_write_scanlines'
    image_io.cpp:(.text+0x5bd4): undefined reference to `jpeg_finish_compress'
    image_io.cpp:(.text+0x5bdc): undefined reference to `jpeg_destroy_compress'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::ReadTiff(char const*, std::vector<unsigned char, std::allocator<unsigned char> >*, int*, int*, int*)':
    image_io.cpp:(.text+0x79db): undefined reference to `TIFFOpen'
    image_io.cpp:(.text+0x79f9): undefined reference to `TIFFGetField'
    image_io.cpp:(.text+0x7a0b): undefined reference to `TIFFGetField'
    image_io.cpp:(.text+0x7a1f): undefined reference to `TIFFGetField'
    image_io.cpp:(.text+0x7a33): undefined reference to `TIFFGetField'
    image_io.cpp:(.text+0x7a98): undefined reference to `TIFFStripSize'
    image_io.cpp:(.text+0x7aad): undefined reference to `TIFFReadEncodedStrip'
    image_io.cpp:(.text+0x7abf): undefined reference to `TIFFNumberOfStrips'
    image_io.cpp:(.text+0x7ace): undefined reference to `TIFFClose'
    image_io.cpp:(.text+0x7b1c): undefined reference to `TIFFClose'
    image_io.cpp:(.text+0x7f38): undefined reference to `TIFFReadRGBAImageOriented'
    image_io.cpp:(.text+0x7f4c): undefined reference to `TIFFClose'
    //usr/local/lib/libopenMVG_image.a(image_io.cpp.o): In function `openMVG::image::ReadJpgStream(_IO_FILE*, std::vector<unsigned char, std::allocator<unsigned char> >*, int*, int*, int*)':
    image_io.cpp:(.text+0x8104): undefined reference to `jpeg_std_error'
    image_io.cpp:(.text+0x8756): undefined reference to `jpeg_destroy_decompress'
    image_io.cpp:(.text+0x877e): undefined reference to `jpeg_CreateDecompress'
    image_io.cpp:(.text+0x878b): undefined reference to `jpeg_stdio_src'
    image_io.cpp:(.text+0x8798): undefined reference to `jpeg_read_header'
    image_io.cpp:(.text+0x87a0): undefined reference to `jpeg_start_decompress'
    image_io.cpp:(.text+0x883c): undefined reference to `jpeg_read_scanlines'
    image_io.cpp:(.text+0x885f): undefined reference to `jpeg_finish_decompress'
    image_io.cpp:(.text+0x8867): undefined reference to `jpeg_destroy_decompress'
    //usr/local/lib/libopenMVG_features.a(image_describer_akaze.cpp.o): In function `openMVG::features::AKAZE_Image_describer_LIOP::Describe_AKAZE_LIOP(openMVG::image::Image<unsigned char> const&, openMVG::image::Image<unsigned char> const*) [clone ._omp_fn.1]':
    image_describer_akaze.cpp:(.text+0x2c): undefined reference to `omp_get_num_threads'
    image_describer_akaze.cpp:(.text+0x33): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_features.a(image_describer_akaze.cpp.o): In function `openMVG::features::AKAZE_Image_describer_SURF::Describe_AKAZE_SURF(openMVG::image::Image<unsigned char> const&, openMVG::image::Image<unsigned char> const*) [clone ._omp_fn.0]':
    image_describer_akaze.cpp:(.text+0x656): undefined reference to `omp_get_num_threads'
    image_describer_akaze.cpp:(.text+0x65d): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_features.a(image_describer_akaze.cpp.o): In function `openMVG::features::AKAZE_Image_describer_MLDB::Describe_AKAZE_MLDB(openMVG::image::Image<unsigned char> const&, openMVG::image::Image<unsigned char> const*) [clone ._omp_fn.2]':
    image_describer_akaze.cpp:(.text+0x83c): undefined reference to `omp_get_num_threads'
    image_describer_akaze.cpp:(.text+0x843): undefined reference to `omp_get_thread_num'
    //usr/local/lib/libopenMVG_features.a(image_describer_akaze.cpp.o): In function `openMVG::features::AKAZE_Image_describer_SURF::Describe_AKAZE_SURF(openMVG::image::Image<unsigned char> const&, openMVG::image::Image<unsigned char> const*)':
    image_describer_akaze.cpp:(.text+0xef9): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_features.a(image_describer_akaze.cpp.o): In function `openMVG::features::AKAZE_Image_describer_LIOP::Describe_AKAZE_LIOP(openMVG::image::Image<unsigned char> const&, openMVG::image::Image<unsigned char> const*)':
    image_describer_akaze.cpp:(.text+0x1684): undefined reference to `GOMP_parallel'
    //usr/local/lib/libopenMVG_features.a(image_describer_akaze.cpp.o): In function `openMVG::features::AKAZE_Image_describer_MLDB::Describe_AKAZE_MLDB(openMVG::image::Image<unsigned char> const&, openMVG::image::Image<unsigned char> const*)':
    image_describer_akaze.cpp:(.text+0x1df9): undefined reference to `GOMP_parallel'
    CMakeFiles/openMVG_sample_image_matching.dir/describe_and_match.o: In function `main':
    describe_and_match.cpp:(.text+0x252): undefined reference to `stlplus::folder_up(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)'
    describe_and_match.cpp:(.text+0x2d7): undefined reference to `stlplus::folder_up(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)'
    collect2: error: ld returned 1 exit status
    CMakeFiles/openMVG_sample_image_matching.dir/build.make:83: recipe for target 'openMVG_sample_image_matching' failed
    make[2]: *** [openMVG_sample_image_matching] Error 1
    CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/openMVG_sample_image_matching.dir/all' failed
    make[1]: *** [CMakeFiles/openMVG_sample_image_matching.dir/all] Error 2
    Makefile:83: recipe for target 'all' failed
    make: *** [all] Error 2

  3.  解决方案,把openMVG作为库引入到cmake即可:如下例所示:注意对应的库前面要加OpenMVG.
  4. find_package(OpenMVG REQUIRED)
    add_executable(main main.cpp)
    target_link_libraries(main
      PRIVATE
        OpenMVG::openMVG_sfm
        OpenMVG::openMVG_matching
        ...
    )

  5. 参考链接:openMVG/BUILD.md at master · openMVG/openMVG · GitHub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值