- BUG如下所示:
-
//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
- 解决方案,把openMVG作为库引入到cmake即可:如下例所示:注意对应的库前面要加OpenMVG.
-
find_package(OpenMVG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE OpenMVG::openMVG_sfm OpenMVG::openMVG_matching ... )
- 参考链接:openMVG/BUILD.md at master · openMVG/openMVG · GitHub
使用openMVG作为第三方库时出现的BUG
于 2024-08-28 17:58:57 首次发布