Bug #598

OpenCV build fails with compiler error, because incompatible protoc is used

Added by Robert Haschke 10 months ago. Updated 8 months ago.

Status:ClosedStart date:2021-07-12
Priority:HighDue date:
Assignee:Thorben Markmann% Done:


Category:RecipeSpent time:-
Target version:-


Recently Thorben Markmann changed cmake options for opencv-plus-contrib-cuda to BUILD_PROTOBUF=OFF.
This requires an external, up-to-date protobuf compiler (OpenCV uses protoc 3.5.2 internally by default otherwise).

However, Ubuntu 18.04 ships with 3.0.0 only. Hence, with that option enabled, I get the following compiler error:
error: no match for ‘operator[]’ (operand types are ‘const google::protobuf::RepeatedField<long int>’ and ‘int’)

Probably, Thorben, you use your own (newer) version of protoc.
If so, please configure the cmake option locally for your distro instead of breaking all other existing distros.


#1 Updated by Thorben Markmann 8 months ago

  • Status changed from New to In Progress

#2 Updated by Thorben Markmann 8 months ago

  • Status changed from In Progress to Feedback

Hey, I introduced a pattern matching version at the end of the versions list, not knowing it would overwrite versions defined under variables->branches. Sorry for breaking other distributions.

Because I am experimenting with various OpenCV versions and a newer protobuf version, I added a new regex version of style "v4.4.0-no-protobuf" which won't break other distros. I also updated the general regex version (so it doesn't change the "default" parameters) and deleted the numeric versions from variables->branches since they won't get matched anymore. I pushed the changes to the new branch "bug/opencv". If you have no further objections to my changes, I will merge them to the master at the end of the week.

#3 Updated by Thorben Markmann 8 months ago

  • Status changed from Feedback to Closed

Also available in: Atom PDF