在编译opencv-4.5版本时会经常遇到如下错误:
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::KeyPointValueChooser'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `cvv::qtutil::MatchSettings::qt_metacall(QMetaObject::Call, int, void**)'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::structures::MatchSceneGraphicsView'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::KeyPointSelection'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::STFLQueryWidgetLineEdit'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `cvv::qtutil::MatchSelection::settingsChanged()'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::view::LineMatchView'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `cvv::qtutil::MatchSelection::qt_metacall(QMetaObject::Call, int, void**)'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::gui::MatchCallTab'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::Collapsable'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::gui::OverviewTable'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::ZoomableOptPanel'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::view::MatchView'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::view::DefaultFilterView'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::KeyPointManagement'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `cvv::qtutil::CVVKeyPoint::updatePoint(bool)'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `cvv::qtutil::KeyPointSelection::qt_metacast(char const*)'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `cvv::gui::CallTab::metaObject() const'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::gui::RawviewTable'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::SlotBool'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::MatchSettings'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::view::DualFilterView'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `cvv::qtutil::KeyPointSelection::qt_metacall(QMetaObject::Call, int, void**)'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::qtutil::ChannelReorderFilter'
/usr/bin/ld: ../../lib/libopencv_world.so.4.5.0: undefined reference to `vtable for cvv::view::Rawview'
上述错误 github 提供了两种解决方案 -DBUILD_opencv_cvv=OFF 或者 -DBUILD_opencv_world=OFF,我尝试了前一种方法就可以。