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