Opened 3 years ago

Closed 3 years ago

#61908 closed defect (fixed)

opencv: @3.4.13: variant 'contrib' fails with link error, for module 'libopencv_sfm'

Reported by: mascguy (Christopher Nielsen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: opencv

Description (last modified by mascguy (Christopher Nielsen))

I'm seeing similar errors with this contrib module for opencv4 v4.5.1. However, opencv v3.4.12, as well as opencv4 v4.5.0 (I'm working on the latter), are both fine.

Some of the link errors appear to be related to Google GLog. I haven't tracked down the others yet.

As for workarounds, I tested with MacPorts clang-10, hoping it might be an issue with what's provided by Xcode. But that didn't help. I also verified that the configure scripts are properly finding GLog, and they are.

These failures were seen on MacOS 10.13 and Xcode 10.1. However, builds succeed on 10.12, 10.14, and 10.15.

Details:

:info:build Undefined symbols for architecture x86_64:
:info:build   "fLI::FLAGS_v", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build   "google::LogMessage::LogMessage(char const*, int)", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build   "google::LogMessageFatal::LogMessageFatal(char const*, int)", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build   "google::kLogSiteUninitialized", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double)::vlocal__ in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double)::vlocal__ in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double)::vlocal__ in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double)::vlocal__ in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double)::vlocal__ in libmultiview.a(robust_fundamental.cc.o)
:info:build       ...
:info:build   "google::InitVLOG3__(int**, int*, char const*, int)", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build   "google::LogMessage::stream()", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build   "google::LogMessageFatal::~LogMessageFatal()", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build   "google::LogMessage::~LogMessage()", referenced from:
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::EightPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build       libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >::Model libmv::Estimate<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> >, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > >(libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > const&, libmv::MLEScorer<libmv::two_view::kernel::Kernel<libmv::two_view::kernel::NormalizedSolver<libmv::fundamental::kernel::SevenPointSolver, libmv::UnnormalizerT>, libmv::fundamental::kernel::SampsonError, Eigen::Matrix<double, 3, 3, 0, 3, 3> > > const&, libmv::vector<int, Eigen::aligned_allocator<int> >*, double*, double) in libmultiview.a(robust_fundamental.cc.o)
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
:info:build make[2]: *** [lib/libopencv_sfm.3.4.13.dylib] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_macports_sources_ports_enabled_graphics_opencv/opencv/work/build'
:info:build make[1]: *** [modules/sfm/CMakeFiles/opencv_sfm.dir/all] Error 2

Attachments (1)

opencv3-3.4.13-main-log-10.13.txt.gz (79.0 KB) - added by mascguy (Christopher Nielsen) 3 years ago.

Download all attachments as: .zip

Change History (11)

Changed 3 years ago by mascguy (Christopher Nielsen)

comment:1 Changed 3 years ago by mascguy (Christopher Nielsen)

Full log for 10.13 attached.

comment:2 Changed 3 years ago by mascguy (Christopher Nielsen)

Owner: changed from Schamschula to mascguy

comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)

Builds succeed on 10.12, 10.14, and 10.15. So it may be related to what contrib-related dependencies are -- and/or aren't -- installed. So I'll take this.

Last edited 3 years ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:4 Changed 3 years ago by mascguy (Christopher Nielsen)

Description: modified (diff)

comment:5 Changed 3 years ago by mascguy (Christopher Nielsen)

Port: opencv4 added

comment:6 Changed 3 years ago by mascguy (Christopher Nielsen)

Port: opencv4 removed

comment:7 Changed 3 years ago by erikbs

I get the same error on 10.9 too; ver. 3.4.13, variants +avx2+contrib+eigen+python39+tbb.

System/compiler info:

:debug:sysinfo OS X 10.9 (darwin/13.4.0) arch i386
:debug:sysinfo MacPorts 2.6.4
:debug:sysinfo Xcode 6.2
:debug:sysinfo SDK 10.9
...
:debug:clean Sourcing PortGroup clang_dependency 1.0 from /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/group/clang_dependency-1.0.tcl
:debug:clean compiler clang 600.0.57 not blacklisted because it doesn't match {clang < 211.10.1}

Macports defaults to clang-mp-9.0, but I also tried clang-mp-10 without success.

Apparently the contrib module that fails to link is SFM (Structure From Motion). For some strange reason it find gflags, but not glog. Whatever the reason is, I managed to build it successfully by editing this file:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_graphics_opencv/opencv/work/build/modules/sfm/CMakeFiles/opencv_sfm.dir/link.txt

… where I added /opt/local/lib/libglog.0.4.0.dylib right after libgflags.2.2.2.dylib in the list of libraries to link against

When calling upgrade opencv again, Macports picks up where it failed and finishes successfully.


I suspect that the error lies in either of these files:

work/opencv_contrib-3.4.13/modules/sfm/CMakeLists.txt

work/opencv_contrib-3.4.13/modules/sfm/cmake/FindGlog.cmake

Unfortunately I am not sure how to debug these, but it seems like find_package(Glog QUIET) fails. In the first file I see this command:

set(LIBMV_LIGHT_LIBS
  correspondence
  multiview
  numeric
  ${GLOG_LIBRARIES}
  ${GFLAGS_LIBRARIES}
)

Judging by the contents of link.txt (full path above), which is:

/opt/local/bin/clang++-mp-10 -pipe -Os -DNDEBUG -isystem/opt/local/include -I/opt/local/include/LegacySupport -stdlib=libc++   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Wformat -Werror=format-security -Wmissing-prototypes -Wstrict-prototypes -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Winconsistent-missing-override -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -Wno-deprecated-enum-enum-conversion -Wno-deprecated-anon-enum-enum-conversion -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections  -msse4.1 -mpopcnt -msse4.2 -mf16c -mfma -mavx2 -fvisibility=hidden -fvisibility-inlines-hidden -Wno-undef -Wno-shadow -Wno-sign-compare -Wno-missing-declarations -Wno-unused-parameter -Wno-unused-function -arch x86_64 -mmacosx-version-min=10.9 -dynamiclib -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names -lMacportsLegacySupport  -Wl,-dead_strip -compatibility_version 3.4.0 -current_version 3.4.13 -o ../../lib/libopencv_sfm.3.4.13.dylib -install_name @rpath/libopencv_sfm.3.4.dylib CMakeFiles/opencv_sfm.dir/src/conditioning.cpp.o CMakeFiles/opencv_sfm.dir/src/fundamental.cpp.o CMakeFiles/opencv_sfm.dir/src/io.cpp.o CMakeFiles/opencv_sfm.dir/src/numeric.cpp.o CMakeFiles/opencv_sfm.dir/src/projection.cpp.o CMakeFiles/opencv_sfm.dir/src/reconstruct.cpp.o CMakeFiles/opencv_sfm.dir/src/robust.cpp.o CMakeFiles/opencv_sfm.dir/src/simple_pipeline.cpp.o CMakeFiles/opencv_sfm.dir/src/triangulation.cpp.o  -Wl,-rpath,/opt/local/lib ../../lib/libopencv_imgcodecs.3.4.13.dylib ../../lib/libopencv_xfeatures2d.3.4.13.dylib ../../lib/libcorrespondence.a ../../lib/libmultiview.a ../../lib/libnumeric.a /opt/local/lib/libgflags.2.2.2.dylib ../../lib/libopencv_ml.3.4.13.dylib ../../lib/libopencv_shape.3.4.13.dylib ../../lib/libopencv_video.3.4.13.dylib ../../lib/libopencv_calib3d.3.4.13.dylib ../../lib/libopencv_features2d.3.4.13.dylib ../../lib/libopencv_flann.3.4.13.dylib ../../lib/libopencv_imgproc.3.4.13.dylib ../../lib/libopencv_core.3.4.13.dylib

… GLOG_LIBRARIES is not set, because the corresponding dylib is missing from the list (../../lib/libcorrespondence.a ../../lib/libmultiview.a ../../lib/libnumeric.a /opt/local/lib/libgflags.2.2.2.dylib, which I guess is generated from LIBMV_LIGHT_LIBS). libglog.0.4.0.dylib should have been in there too, between libnumeric.a and libgflags.2.2.2.dylib.

comment:8 Changed 3 years ago by mascguy (Christopher Nielsen)

FYI, this issue is fixed with opencv/opencv3 3.4.14, and opencv4 4.5.2. Pull requests pending shortly.

comment:9 Changed 3 years ago by mascguy (Christopher Nielsen)

comment:10 Changed 3 years ago by Christopher Nielsen <mascguy@…>

Resolution: fixed
Status: assignedclosed

In 4925e5bcf01f19c67cb27015829db9a2c8f6d488/macports-ports (master):

opencv3: update to 3.4.14; fix paths in pkgconfig
Fixes: #62462
Fixes: #61908

Note: See TracTickets for help on using tickets.