opencv: OpenCV 4.4 - error: call to implicitly-deleted default constructor of 'cv::gimpl::Op'
System information (version)
- OpenCV => 4.4
- Operating System / Platform => Linux OpenMandriva Cooker
- Compiler => LLVM/Clang 10.0.1
Detailed description
Trying build new OpenCV 4.4 for OpenMabdriva Cooker and at build time see error:
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/10.1.1/../../../../include/c++/10.1.1/bits/stl_construct.h:109:38: error: call to implicitly-deleted default constructor of 'cv::gimpl::Op'
Full build log here: https://file-store.openmandriva.org/api/v1/file_stores/a96e50f00d1eb39a0ab11bd9da473347a3446f11.log?show=true
Steps to reproduce
Install OpenMandriva Cooker Try build OpenCV 4.4 with Clang 10.0.1
Issue submission checklist
- I report the issue, it’s not a question
- I checked the problem with documentation, FAQ, open issues, answers.opencv.org, Stack Overflow, etc and have not found solution
- I updated to latest OpenCV version and the issue is still there
- There is reproducer code and related data files: videos, images, onnx, etc
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 17 (13 by maintainers)
I’m running into the same problem when using clang 11.0-rc1. The difference between the working and non-working builds are probably the STL implementations - @AngryPenguinPL and I are both using libstdc++ from gcc 10.1.
The problem is that in the code you posted,
ts.resize(sz)
is called to resize the the vector – which allocates objects to be added to the vector, butT
in this case iscv::gimpl::Op
which doesn’t have a constructor. The default constructor isn’t there becausecv::gimpl::Op
contains acv::GKernel
, which in turn contains aconst GSpecs
and aconst GShapes
. Removing theconst
from theinSpecs
andoutShapes
members ofcv::GKernel
“fixes” (rather, hides) the problem.