Skip to content

Build error in bgsegm::BackgroundSubtractors #4030

@limann77

Description

@limann77

I'm trying to build git master OpenCV+contrib with gcc 15.2.1. My build with

 cmake -B build -S $pkgname \ -DWITH_VTK=OFF \ -DWITH_OPENCL=OFF \ -DWITH_OPENGL=ON \ -DWITH_TBB=ON \ -DBUILD_WITH_DEBUG_INFO=OFF \ -DBUILD_TESTS=OFF \ -DBUILD_PERF_TESTS=OFF \ -DBUILD_EXAMPLES=OFF \ -DINSTALL_C_EXAMPLES=OFF \ -DINSTALL_PYTHON_EXAMPLES=OFF \ -DCMAKE_INSTALL_PREFIX=/usr \ -DOPENCV_EXTRA_MODULES_PATH="$srcdir/opencv_contrib/modules" \ -DOPENCV_SKIP_PYTHON_LOADER=ON \ -DOPENCV_PYTHON3_INSTALL_PATH=$_pythonpath \ -DLAPACK_LIBRARIES="/usr/lib/liblapack.so;/usr/lib/libblas.so;/usr/lib/libcblas.so" \ -DLAPACK_CBLAS_H="/usr/include/cblas.h" \ -DLAPACK_LAPACKE_H="/usr/include/lapacke.h" \ -DOPENCV_GENERATE_PKGCONFIG=ON \ -DOPENCV_ENABLE_NONFREE=ON \ -DOPENCV_GENERATE_SETUPVARS=OFF \ -DWITH_1394=OFF \ -DEIGEN_INCLUDE_PATH=/usr/include/eigen3 \ -DCPU_BASELINE_DISABLE=SSE3,AVX512_SKX \ -DCPU_DISPATCH= \ -DBUILD_opencv_java=OFF \ -DBUILD_opencv_cvv=OFF \ -DBUILD_opencv_dnn=ON \ -DBUILD_highgui=OFF \ -DWITH_FFMPEG=ON \ -DWITH_QT=OFF \ -DWITH_PROTOBUF=OFF \ -DWITH_IPP=OFF \ -DWITH_ZLIB_NG=ON LC_ALL=C cmake --build build 

leads to a compilation failure in opencv2/bgsegm.hpp:

In file included from ./opencv_contrib/modules/bgsegm/src/precomp.hpp:45, from ./opencv_contrib/modules/bgsegm/src/bgfg_gaussmix.cpp:43: ./opencv_contrib/modules/bgsegm/include/opencv2/bgsegm.hpp:89:26: error: 'virtual void cv::bgsegm::BackgroundSubtractorMOG::apply(cv::InputArray, cv::InputArray, cv::OutputArray, double)' marked 'override', but does not override 89 | CV_WRAP virtual void apply(InputArray image, InputArray knownForegroundMask, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE = 0; | ^~~~~ ./opencv_contrib/modules/bgsegm/include/opencv2/bgsegm.hpp:153:26: error: 'virtual void cv::bgsegm::BackgroundSubtractorGMG::apply(cv::InputArray, cv::InputArray, cv::OutputArray, double)' marked 'override', but does not override 153 | CV_WRAP virtual void apply(InputArray image, InputArray knownForegroundMask, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE = 0; | ^~~~~ ./opencv_contrib/modules/bgsegm/include/opencv2/bgsegm.hpp:269:26: error: 'virtual void cv::bgsegm::BackgroundSubtractorCNT::apply(cv::InputArray, cv::InputArray, cv::OutputArray, double)' marked 'override', but does not override 269 | CV_WRAP virtual void apply(InputArray image, InputArray knownForegroundMask, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE = 0; | ^~~~~ ./opencv_contrib/modules/bgsegm/include/opencv2/bgsegm.hpp:330:26: error: 'virtual void cv::bgsegm::BackgroundSubtractorGSOC::apply(cv::InputArray, cv::InputArray, cv::OutputArray, double)' marked 'override', but does not override 330 | CV_WRAP virtual void apply(InputArray image, InputArray knownForegroundMask, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE = 0; | ^~~~~ ./opencv_contrib/modules/bgsegm/include/opencv2/bgsegm.hpp:342:26: error: 'virtual void cv::bgsegm::BackgroundSubtractorLSBP::apply(cv::InputArray, cv::InputArray, cv::OutputArray, double)' marked 'override', but does not override 342 | CV_WRAP virtual void apply(InputArray image, InputArray knownForegroundMask, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE = 0; | ^~~~~ 

Just removing the CV_OVERRIDE=0 leads to

/usr/bin/ld: CMakeFiles/opencv_bgsegm.dir/src/bgfg_gaussmix.cpp.o:(.data.rel.ro._ZTIN2cv6bgsegm27BackgroundSubtractorMOGImplE[_ZTIN2cv6bgsegm27BackgroundSubtractorMOGImplE]+0x10): undefined reference to `typeinfo for cv::bgsegm::BackgroundSubtractorMOG' /usr/bin/ld: CMakeFiles/opencv_bgsegm.dir/src/bgfg_gmg.cpp.o:(.data.rel.ro._ZTIN2cv6bgsegm27BackgroundSubtractorGMGImplE[_ZTIN2cv6bgsegm27BackgroundSubtractorGMGImplE]+0x10): undefined reference to `typeinfo for cv::bgsegm::BackgroundSubtractorGMG' /usr/bin/ld: CMakeFiles/opencv_bgsegm.dir/src/bgfg_gsoc.cpp.o:(.data.rel.ro._ZTIN2cv6bgsegm28BackgroundSubtractorGSOCImplE[_ZTIN2cv6bgsegm28BackgroundSubtractorGSOCImplE]+0x10): undefined reference to `typeinfo for cv::bgsegm::BackgroundSubtractorGSOC' /usr/bin/ld: CMakeFiles/opencv_bgsegm.dir/src/bgfg_gsoc.cpp.o:(.data.rel.ro._ZTIN2cv6bgsegm28BackgroundSubtractorLSBPImplE[_ZTIN2cv6bgsegm28BackgroundSubtractorLSBPImplE]+0x10): undefined reference to `typeinfo for cv::bgsegm::BackgroundSubtractorLSBP' /usr/bin/ld: CMakeFiles/opencv_bgsegm.dir/src/bgfg_subcnt.cpp.o:(.data.rel.ro._ZTIN2cv6bgsegm27BackgroundSubtractorCNTImplE[_ZTIN2cv6bgsegm27BackgroundSubtractorCNTImplE]+0x10): undefined reference to `typeinfo for cv::bgsegm::BackgroundSubtractorCNT' 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions