opencv / opencv

Open Source Computer Vision Library
https://opencv.org
Apache License 2.0
78.29k stars 55.73k forks source link

OpenCV does not support protobuf 3.x #23791

Open jiapei100 opened 1 year ago

jiapei100 commented 1 year ago

System Information

Detailed description

Please refer to Pastebin Failed2BuildOpenCV_Protobuf23.2:

A part of the errors are listed as:

[ 29%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/misc/caffe/opencv-caffe.pb.cc.o
cd ....../opencv/build/modules/dnn && /usr/bin/ccache /usr/bin/c++ -DCVAPI_EXPORTS -DCV_CUDA4DNN=1 -DENABLE_PLUGINS -DHAVE_FLATBUFFERS=1 -DHAVE_PROTOBUF=1 -DOPENCV_DNN_EXTERNAL_PROTOBUF=1 -DVK_NO_PROTOTYPES -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I....../opencv/build/3rdparty/ippicv/ippicv_lnx/icv/include -I....../opencv/build/3rdparty/ippicv/ippicv_lnx/iw/include -I....../opencv/build -I....../opencv/3rdparty/include -I....../opencv/modules/dnn/include -I....../opencv/build/modules/dnn -I....../opencv_contrib/modules/cudev/include -I....../opencv/modules/core/include -I....../opencv/modules/imgproc/include -I....../opencv/modules/dnn/misc/caffe -I....../opencv/modules/dnn/misc/tensorflow -I....../opencv/modules/dnn/misc/onnx -I....../opencv/modules/dnn/misc/tflite -isystem /usr/local/cuda/include -isystem /usr/include/eigen3 -isystem ....../opencv/3rdparty/flatbuffers/include -std=c++17   -fsigned-char -ffast-math -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fno-omit-frame-pointer -pg -g  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -Wno-deprecated -Wno-missing-declarations -Wno-shadow -Wno-unused-parameter -Wno-sign-compare -Wno-undef -Wno-invalid-offsetof -O3 -DNDEBUG  -DNDEBUG -std=c++11 -fPIC -Wno-suggest-override -Wno-array-bounds -MD -MT modules/dnn/CMakeFiles/opencv_dnn.dir/misc/caffe/opencv-caffe.pb.cc.o -MF CMakeFiles/opencv_dnn.dir/misc/caffe/opencv-caffe.pb.cc.o.d -o CMakeFiles/opencv_dnn.dir/misc/caffe/opencv-caffe.pb.cc.o -c ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.cc
In file included from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.cc:4:
....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:17:2: error: #error This file was generated by an older version of protoc which is
   17 | #error This file was generated by an older version of protoc which is
      |  ^~~~~
....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please
   18 | #error incompatible with your Protocol Buffer headers. Please
      |  ^~~~~
....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
   19 | #error regenerate this file with a newer version of protoc.
      |  ^~~~~
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:130,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:23,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.cc:4:
/usr/local/include/google/protobuf/stubs/common.h:63:2: error: #error "C++ versions less than C++14 are not supported."
   63 | #error "C++ versions less than C++14 are not supported."
      |  ^~~~~
In file included from /usr/local/include/google/protobuf/arena.h:52,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:24,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.cc:4:
/usr/local/include/google/protobuf/arena_align.h: In member function ‘constexpr size_t google::protobuf::internal::ArenaAlign::Padded(size_t) const’:
/usr/local/include/google/protobuf/arena_align.h:154:3: error: body of ‘constexpr’ function ‘constexpr size_t google::protobuf::internal::ArenaAlign::Padded(size_t) const’ not a return-statement
  154 |   }
      |   ^
/usr/local/include/google/protobuf/arena_align.h: At global scope:
/usr/local/include/google/protobuf/arena_align.h:203:18: error: ‘ArenaAlignAs’ function uses ‘auto’ type specifier without trailing return type
  203 | inline constexpr auto ArenaAlignAs() {
      |                  ^~~~
/usr/local/include/google/protobuf/arena_align.h:203:18: note: deduced return type only available with ‘-std=c++14’ or ‘-std=gnu++14’
/usr/local/include/google/protobuf/arena_align.h:209:18: error: ‘ArenaAlignOf’ function uses ‘auto’ type specifier without trailing return type
  209 | inline constexpr auto ArenaAlignOf() {
      |                  ^~~~
/usr/local/include/google/protobuf/arena_align.h:209:18: note: deduced return type only available with ‘-std=c++14’ or ‘-std=gnu++14’
In file included from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:24,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.cc:4:
/usr/local/include/google/protobuf/arena.h: In member function ‘void google::protobuf::Arena::Own(T*)’:
/usr/local/include/google/protobuf/arena.h:363:14: error: ‘conditional_t’ in namespace ‘std’ does not name a template type; did you mean ‘conditional’?
  363 |         std::conditional_t<std::is_convertible<T*, MessageLite*>::value,
      |              ^~~~~~~~~~~~~
      |              conditional
/usr/local/include/google/protobuf/arena.h:366:36: error: ‘TypeToUse’ does not name a type
  366 |       impl_.AddCleanup(static_cast<TypeToUse*>(object),
      |                                    ^~~~~~~~~
/usr/local/include/google/protobuf/arena.h:366:45: error: expected ‘>’ before ‘*’ token
  366 |       impl_.AddCleanup(static_cast<TypeToUse*>(object),
      |                                             ^
/usr/local/include/google/protobuf/arena.h:366:45: error: expected ‘(’ before ‘*’ token
/usr/local/include/google/protobuf/arena.h:366:46: error: expected primary-expression before ‘>’ token
  366 |       impl_.AddCleanup(static_cast<TypeToUse*>(object),
      |                                              ^
/usr/local/include/google/protobuf/arena.h:367:55: error: ‘TypeToUse’ was not declared in this scope
  367 |                        &internal::arena_delete_object<TypeToUse>);
      |                                                       ^~~~~~~~~
In file included from /usr/local/include/google/protobuf/generated_message_table_driven.h:34,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:26,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.cc:4:
/usr/local/include/google/protobuf/map.h: At global scope:
/usr/local/include/google/protobuf/map.h:203:31: error: ‘enable_if_t’ is not a member of ‘std’
  203 | struct KeyForBaseImpl<T, std::enable_if_t<std::is_integral<T>::value &&
      |                               ^~~~~~~~~~~
/usr/local/include/google/protobuf/map.h:203:31: note: ‘std::enable_if_t’ is only available from C++14 onwards
/usr/local/include/google/protobuf/map.h:203:31: error: ‘enable_if_t’ is not a member of ‘std’
/usr/local/include/google/protobuf/map.h:203:31: note: ‘std::enable_if_t’ is only available from C++14 onwards
/usr/local/include/google/protobuf/map.h:204:62: error: type/value mismatch at argument 2 in template parameter list for ‘template<class T, class> struct google::protobuf::internal::KeyForBaseImpl’
  204 |                                           std::is_signed<T>::value>> {
      |                                                              ^~~~~
/usr/local/include/google/protobuf/map.h:204:62: note:   expected a type, got ‘((<expression error> < std::is_integral<_Tp>::value) && std::is_signed<_Tp>::value)’
/usr/local/include/google/protobuf/map.h:204:67: error: expected unqualified-id before ‘>’ token
  204 |                                           std::is_signed<T>::value>> {
      |                                                                   ^~
/usr/local/include/google/protobuf/map.h:300:25: error: ‘conditional_t’ in namespace ‘std’ does not name a template type; did you mean ‘conditional’?
  300 | using KeyForTree = std::conditional_t<std::is_integral<T>::value, uint64_t,
      |                         ^~~~~~~~~~~~~
      |                         conditional
/usr/local/include/google/protobuf/map.h:305:10: error: ‘conditional_t’ is not a member of ‘std’; did you mean ‘conditional’?
  305 |     std::conditional_t<std::is_integral<T>::value, uint64_t, T>>::less;
      |          ^~~~~~~~~~~~~
      |          conditional
/usr/local/include/google/protobuf/map.h:305:10: error: ‘conditional_t’ is not a member of ‘std’; did you mean ‘conditional’?
  305 |     std::conditional_t<std::is_integral<T>::value, uint64_t, T>>::less;
      |          ^~~~~~~~~~~~~
      |          conditional
/usr/local/include/google/protobuf/map.h:305:62: error: wrong number of template arguments (3, should be 1)
  305 |     std::conditional_t<std::is_integral<T>::value, uint64_t, T>>::less;
      |                                                              ^
/usr/local/include/google/protobuf/map.h:214:8: note: provided for ‘template<class key_type> struct google::protobuf::internal::TransparentSupport’
  214 | struct TransparentSupport {
      |        ^~~~~~~~~~~~~~~~~~
/usr/local/include/google/protobuf/map.h:304:30: error: expected nested-name-specifier
  304 | using LessForTree = typename TransparentSupport<
      |                              ^~~~~~~~~~~~~~~~~~~
  305 |     std::conditional_t<std::is_integral<T>::value, uint64_t, T>>::less;
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/google/protobuf/map.h:309:14: error: ‘KeyForTree’ was not declared in this scope; did you mean ‘KeyForBase’?
  309 |     std::map<KeyForTree<Key>, NodeBase*, LessForTree<Key>,
      |              ^~~~~~~~~~
      |              KeyForBase
/usr/local/include/google/protobuf/map.h:309:28: error: wrong number of template arguments (1, should be at least 2)
  309 |     std::map<KeyForTree<Key>, NodeBase*, LessForTree<Key>,
      |                            ^
In file included from /usr/include/c++/11/map:61,
                 from /usr/local/include/google/protobuf/stubs/common.h:40,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:130,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.h:23,
                 from ....../opencv/modules/dnn/misc/caffe/opencv-caffe.pb.cc:4:
......

Steps to reproduce

Just build OpenCV from source, with the NEWEST protobuf pre-installed.

- BUILD_PROTOBUF                   OFF
-  PROTOBUF_UPDATE_FILES            OFF
- WITH_PROTOBUF                    ON

Issue submission checklist

jiapei100 commented 1 year ago

By the way, is there a way to NOT avoid building opencv-caffe ??

dkurt commented 1 year ago

@jiapei100, please add build command.

Try also with -DPROTOBUF_UPDATE_FILES=ON due system protobuf is used rather than 3rdparty version.

jiapei100 commented 1 year ago

@dkurt Tried with -DPROTOBUF_UPDATE_FILES=ON ALREADY... the same....

jiapei100 commented 1 year ago

Again, today, with the most recent Protocol Buffers v23.3, and self-built Abseil LTS 20230125.3.

➜  build git:(4.x) ✗ which protoc
/usr/local/bin/protoc
➜  build git:(4.x) ✗ /usr/local/bin/protoc --version
libprotoc 23.3
[ 28%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o
cd ....../opencv/build/modules/dnn && /usr/bin/c++ -DCVAPI_EXPORTS -DCV_CUDA4DNN=1 -DENABLE_PLUGINS -DHAVE_FLATBUFFERS=1 -DHAVE_PROTOBUF=1 -DOPENCV_DNN_EXTERNAL_PROTOBUF=1 -DVK_NO_PROTOTYPES -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I....../opencv/build/3rdparty/ippicv/ippicv_lnx/icv/include -I....../opencv/build -I....../opencv/3rdparty/include -I....../opencv/modules/dnn/include -I....../opencv/build/modules/dnn -I....../opencv_contrib/modules/cudev/include -I....../opencv/modules/core/include -I....../opencv/modules/imgproc/include -I....../opencv/modules/dnn/misc/tflite -isystem /usr/local/cuda/include -isystem /usr/include/eigen3 -isystem ....../opencv/3rdparty/flatbuffers/include --std=c++17 -fPIC   -fsigned-char -ffast-math -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fno-omit-frame-pointer -pg -g  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -Wno-deprecated -Wno-missing-declarations -Wno-shadow -Wno-unused-parameter -Wno-sign-compare -Wno-undef -Wno-invalid-offsetof -O3 -DNDEBUG  -DNDEBUG -std=c++11 -fPIC -Wno-suggest-override -Wno-array-bounds -MD -MT modules/dnn/CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o -MF CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o.d -o CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o -c ....../opencv/build/modules/dnn/opencv-caffe.pb.cc
In file included from /usr/local/include/absl/base/config.h:86,
                 from /usr/local/include/absl/base/attributes.h:37,
                 from /usr/local/include/absl/strings/string_view.h:39,
                 from /usr/local/include/google/protobuf/stubs/common.h:44,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:130,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
   79 | #error "C++ versions less than C++14 are not supported."
      |  ^~~~~
In file included from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:11,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/google/protobuf/port_def.inc:205:15: error: static assertion failed: Protobuf only supports C++14 and newer.
  205 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer.");
      |               ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/google/protobuf/stubs/common.h:44,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:130,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
   52 | using string_view = std::string_view;
      |                          ^~~~~~~~~~~
/usr/local/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
   52 | using string_view = std::string_view;
      |                     ^~~
/usr/local/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  686 | inline string_view ClippedSubstr(string_view s, size_t pos,
      |        ^~~~~~~~~~~
/usr/local/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type
  697 | constexpr string_view NullSafeStringView(const char* p) {
      |           ^~~~~~~~~~~
In file included from /usr/local/include/google/protobuf/stubs/port.h:45,
                 from /usr/local/include/google/protobuf/stubs/common.h:46,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:130,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/google/protobuf/port_def.inc:205:15: error: static assertion failed: Protobuf only supports C++14 and newer.
  205 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer.");
      |               ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/google/protobuf/stubs/common.h:56,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:130,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/google/protobuf/port_def.inc:205:15: error: static assertion failed: Protobuf only supports C++14 and newer.
  205 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer.");
      |               ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/absl/log/internal/check_op.h:36,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/log/internal/nullstream.h:49:32: error: ‘absl::string_view’ has not been declared
   49 |   NullStream& AtLocation(absl::string_view, int) { return *this; }
      |                                ^~~~~~~~~~~
In file included from /usr/local/include/absl/time/time.h:90,
                 from /usr/local/include/absl/log/log_entry.h:35,
                 from /usr/local/include/absl/log/internal/log_message.h:41,
                 from /usr/local/include/absl/log/internal/strip.h:24,
                 from /usr/local/include/absl/log/internal/check_op.h:37,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/time/civil_time.h:489:27: error: ‘string_view’ is not a member of ‘absl’
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |                           ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:489:53: error: expected primary-expression before ‘*’ token
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |                                                     ^
/usr/local/include/absl/time/civil_time.h:489:55: error: ‘c’ was not declared in this scope
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |                                                       ^
/usr/local/include/absl/time/civil_time.h:489:56: error: expression list treated as compound expression in initializer [-fpermissive]
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |                                                        ^
/usr/local/include/absl/time/civil_time.h:490:6: error: redefinition of ‘bool absl::ParseCivilTime’
  490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:489:6: note: ‘bool absl::ParseCivilTime’ previously defined here
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:490:27: error: ‘string_view’ is not a member of ‘absl’
  490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c);
      |                           ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:490:53: error: expected primary-expression before ‘*’ token
  490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c);
      |                                                     ^
/usr/local/include/absl/time/civil_time.h:490:55: error: ‘c’ was not declared in this scope
  490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c);
      |                                                       ^
/usr/local/include/absl/time/civil_time.h:491:6: error: redefinition of ‘bool absl::ParseCivilTime’
  491 | bool ParseCivilTime(absl::string_view s, CivilHour* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:489:6: note: ‘bool absl::ParseCivilTime’ previously defined here
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:491:27: error: ‘string_view’ is not a member of ‘absl’
  491 | bool ParseCivilTime(absl::string_view s, CivilHour* c);
      |                           ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:491:51: error: expected primary-expression before ‘*’ token
  491 | bool ParseCivilTime(absl::string_view s, CivilHour* c);
      |                                                   ^
/usr/local/include/absl/time/civil_time.h:491:53: error: ‘c’ was not declared in this scope
  491 | bool ParseCivilTime(absl::string_view s, CivilHour* c);
      |                                                     ^
/usr/local/include/absl/time/civil_time.h:492:6: error: redefinition of ‘bool absl::ParseCivilTime’
  492 | bool ParseCivilTime(absl::string_view s, CivilDay* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:489:6: note: ‘bool absl::ParseCivilTime’ previously defined here
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:492:27: error: ‘string_view’ is not a member of ‘absl’
  492 | bool ParseCivilTime(absl::string_view s, CivilDay* c);
      |                           ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:492:50: error: expected primary-expression before ‘*’ token
  492 | bool ParseCivilTime(absl::string_view s, CivilDay* c);
      |                                                  ^
/usr/local/include/absl/time/civil_time.h:492:52: error: ‘c’ was not declared in this scope
  492 | bool ParseCivilTime(absl::string_view s, CivilDay* c);
      |                                                    ^
/usr/local/include/absl/time/civil_time.h:493:6: error: redefinition of ‘bool absl::ParseCivilTime’
  493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:489:6: note: ‘bool absl::ParseCivilTime’ previously defined here
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:493:27: error: ‘string_view’ is not a member of ‘absl’
  493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c);
      |                           ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:493:52: error: expected primary-expression before ‘*’ token
  493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c);
      |                                                    ^
/usr/local/include/absl/time/civil_time.h:493:54: error: ‘c’ was not declared in this scope
  493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c);
      |                                                      ^
/usr/local/include/absl/time/civil_time.h:494:6: error: redefinition of ‘bool absl::ParseCivilTime’
  494 | bool ParseCivilTime(absl::string_view s, CivilYear* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:489:6: note: ‘bool absl::ParseCivilTime’ previously defined here
  489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:494:27: error: ‘string_view’ is not a member of ‘absl’
  494 | bool ParseCivilTime(absl::string_view s, CivilYear* c);
      |                           ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:494:51: error: expected primary-expression before ‘*’ token
  494 | bool ParseCivilTime(absl::string_view s, CivilYear* c);
      |                                                   ^
/usr/local/include/absl/time/civil_time.h:494:53: error: ‘c’ was not declared in this scope
  494 | bool ParseCivilTime(absl::string_view s, CivilYear* c);
      |                                                     ^
/usr/local/include/absl/time/civil_time.h:509:34: error: ‘string_view’ is not a member of ‘absl’
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |                                  ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:509:60: error: expected primary-expression before ‘*’ token
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |                                                            ^
/usr/local/include/absl/time/civil_time.h:509:62: error: ‘c’ was not declared in this scope
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |                                                              ^
/usr/local/include/absl/time/civil_time.h:509:63: error: expression list treated as compound expression in initializer [-fpermissive]
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |                                                               ^
/usr/local/include/absl/time/civil_time.h:510:6: error: redefinition of ‘bool absl::ParseLenientCivilTime’
  510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:509:6: note: ‘bool absl::ParseLenientCivilTime’ previously defined here
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:510:34: error: ‘string_view’ is not a member of ‘absl’
  510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c);
      |                                  ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:510:60: error: expected primary-expression before ‘*’ token
  510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c);
      |                                                            ^
/usr/local/include/absl/time/civil_time.h:510:62: error: ‘c’ was not declared in this scope
  510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c);
      |                                                              ^
/usr/local/include/absl/time/civil_time.h:511:6: error: redefinition of ‘bool absl::ParseLenientCivilTime’
  511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:509:6: note: ‘bool absl::ParseLenientCivilTime’ previously defined here
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:511:34: error: ‘string_view’ is not a member of ‘absl’
  511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c);
      |                                  ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:511:58: error: expected primary-expression before ‘*’ token
  511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c);
      |                                                          ^
/usr/local/include/absl/time/civil_time.h:511:60: error: ‘c’ was not declared in this scope
  511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c);
      |                                                            ^
/usr/local/include/absl/time/civil_time.h:512:6: error: redefinition of ‘bool absl::ParseLenientCivilTime’
  512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:509:6: note: ‘bool absl::ParseLenientCivilTime’ previously defined here
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:512:34: error: ‘string_view’ is not a member of ‘absl’
  512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c);
      |                                  ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:512:57: error: expected primary-expression before ‘*’ token
  512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c);
      |                                                         ^
/usr/local/include/absl/time/civil_time.h:512:59: error: ‘c’ was not declared in this scope
  512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c);
      |                                                           ^
/usr/local/include/absl/time/civil_time.h:513:6: error: redefinition of ‘bool absl::ParseLenientCivilTime’
  513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:509:6: note: ‘bool absl::ParseLenientCivilTime’ previously defined here
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:513:34: error: ‘string_view’ is not a member of ‘absl’
  513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c);
      |                                  ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:513:59: error: expected primary-expression before ‘*’ token
  513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c);
      |                                                           ^
/usr/local/include/absl/time/civil_time.h:513:61: error: ‘c’ was not declared in this scope
  513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c);
      |                                                             ^
/usr/local/include/absl/time/civil_time.h:514:6: error: redefinition of ‘bool absl::ParseLenientCivilTime’
  514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:509:6: note: ‘bool absl::ParseLenientCivilTime’ previously defined here
  509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c);
      |      ^~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:514:34: error: ‘string_view’ is not a member of ‘absl’
  514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c);
      |                                  ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:514:58: error: expected primary-expression before ‘*’ token
  514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c);
      |                                                          ^
/usr/local/include/absl/time/civil_time.h:514:60: error: ‘c’ was not declared in this scope
  514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c);
      |                                                            ^
/usr/local/include/absl/time/civil_time.h:540:26: error: ‘string_view’ is not a member of ‘absl’
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:540:52: error: expected primary-expression before ‘*’ token
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |                                                    ^
/usr/local/include/absl/time/civil_time.h:540:54: error: ‘c’ was not declared in this scope
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |                                                      ^
/usr/local/include/absl/time/civil_time.h:540:68: error: expected primary-expression before ‘*’ token
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |                                                                    ^
/usr/local/include/absl/time/civil_time.h:540:70: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |                                                                      ^~~~~
      |                                                                      perror
/usr/local/include/absl/time/civil_time.h:540:75: error: expression list treated as compound expression in initializer [-fpermissive]
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |                                                                           ^
/usr/local/include/absl/time/civil_time.h:541:6: error: redefinition of ‘bool absl::time_internal::AbslParseFlag’
  541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:540:6: note: ‘bool absl::time_internal::AbslParseFlag’ previously defined here
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:541:26: error: ‘string_view’ is not a member of ‘absl’
  541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:541:52: error: expected primary-expression before ‘*’ token
  541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error);
      |                                                    ^
/usr/local/include/absl/time/civil_time.h:541:54: error: ‘c’ was not declared in this scope
  541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error);
      |                                                      ^
/usr/local/include/absl/time/civil_time.h:541:68: error: expected primary-expression before ‘*’ token
  541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error);
      |                                                                    ^
/usr/local/include/absl/time/civil_time.h:541:70: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error);
      |                                                                      ^~~~~
      |                                                                      perror
/usr/local/include/absl/time/civil_time.h:542:6: error: redefinition of ‘bool absl::time_internal::AbslParseFlag’
  542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:540:6: note: ‘bool absl::time_internal::AbslParseFlag’ previously defined here
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:542:26: error: ‘string_view’ is not a member of ‘absl’
  542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:542:50: error: expected primary-expression before ‘*’ token
  542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error);
      |                                                  ^
/usr/local/include/absl/time/civil_time.h:542:52: error: ‘c’ was not declared in this scope
  542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error);
      |                                                    ^
/usr/local/include/absl/time/civil_time.h:542:66: error: expected primary-expression before ‘*’ token
  542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error);
      |                                                                  ^
/usr/local/include/absl/time/civil_time.h:542:68: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error);
      |                                                                    ^~~~~
      |                                                                    perror
/usr/local/include/absl/time/civil_time.h:543:6: error: redefinition of ‘bool absl::time_internal::AbslParseFlag’
  543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:540:6: note: ‘bool absl::time_internal::AbslParseFlag’ previously defined here
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:543:26: error: ‘string_view’ is not a member of ‘absl’
  543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:543:49: error: expected primary-expression before ‘*’ token
  543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error);
      |                                                 ^
/usr/local/include/absl/time/civil_time.h:543:51: error: ‘c’ was not declared in this scope
  543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error);
      |                                                   ^
/usr/local/include/absl/time/civil_time.h:543:65: error: expected primary-expression before ‘*’ token
  543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error);
      |                                                                 ^
/usr/local/include/absl/time/civil_time.h:543:67: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error);
      |                                                                   ^~~~~
      |                                                                   perror
/usr/local/include/absl/time/civil_time.h:544:6: error: redefinition of ‘bool absl::time_internal::AbslParseFlag’
  544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:540:6: note: ‘bool absl::time_internal::AbslParseFlag’ previously defined here
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:544:26: error: ‘string_view’ is not a member of ‘absl’
  544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:544:51: error: expected primary-expression before ‘*’ token
  544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error);
      |                                                   ^
/usr/local/include/absl/time/civil_time.h:544:53: error: ‘c’ was not declared in this scope
  544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error);
      |                                                     ^
/usr/local/include/absl/time/civil_time.h:544:67: error: expected primary-expression before ‘*’ token
  544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error);
      |                                                                   ^
/usr/local/include/absl/time/civil_time.h:544:69: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error);
      |                                                                     ^~~~~
      |                                                                     perror
/usr/local/include/absl/time/civil_time.h:545:6: error: redefinition of ‘bool absl::time_internal::AbslParseFlag’
  545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:540:6: note: ‘bool absl::time_internal::AbslParseFlag’ previously defined here
  540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:545:26: error: ‘string_view’ is not a member of ‘absl’
  545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/civil_time.h:545:50: error: expected primary-expression before ‘*’ token
  545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error);
      |                                                  ^
/usr/local/include/absl/time/civil_time.h:545:52: error: ‘c’ was not declared in this scope
  545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error);
      |                                                    ^
/usr/local/include/absl/time/civil_time.h:545:66: error: expected primary-expression before ‘*’ token
  545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error);
      |                                                                  ^
/usr/local/include/absl/time/civil_time.h:545:68: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error);
      |                                                                    ^~~~~
      |                                                                    perror
In file included from /usr/local/include/absl/log/log_entry.h:35,
                 from /usr/local/include/absl/log/internal/log_message.h:41,
                 from /usr/local/include/absl/log/internal/strip.h:24,
                 from /usr/local/include/absl/log/internal/check_op.h:37,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/time/time.h: In constructor ‘absl::Duration::HiRep::HiRep(int64_t)’:
/usr/local/include/absl/time/time.h:256:5: error: ‘constexpr’ constructor does not have empty body
  256 |     }
      |     ^
/usr/local/include/absl/time/time.h: In member function ‘constexpr int64_t absl::Duration::HiRep::Get() const’:
/usr/local/include/absl/time/time.h:276:5: error: body of ‘constexpr’ function ‘constexpr int64_t absl::Duration::HiRep::Get() const’ not a return-statement
  276 |     }
      |     ^
/usr/local/include/absl/time/time.h: In member function ‘constexpr absl::Duration::HiRep& absl::Duration::HiRep::operator=(int64_t) const’:
/usr/local/include/absl/time/time.h:284:11: error: assignment of member ‘absl::Duration::HiRep::hi_’ in read-only object
  284 |       hi_ = static_cast<uint32_t>(unsigned_value >> 32);
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/time.h:285:11: error: assignment of member ‘absl::Duration::HiRep::lo_’ in read-only object
  285 |       lo_ = static_cast<uint32_t>(unsigned_value);
      |       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/time/time.h:286:14: error: binding reference of type ‘absl::Duration::HiRep&’ to ‘const absl::Duration::HiRep’ discards qualifiers
  286 |       return *this;
      |              ^~~~~
/usr/local/include/absl/time/time.h:287:5: error: body of ‘constexpr’ function ‘constexpr absl::Duration::HiRep& absl::Duration::HiRep::operator=(int64_t) const’ not a return-statement
  287 |     }
      |     ^
/usr/local/include/absl/time/time.h: At global scope:
/usr/local/include/absl/time/time.h:703:26: error: ‘string_view’ is not a member of ‘absl’
  703 | bool ParseDuration(absl::string_view dur_string, Duration* d);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:703:58: error: expected primary-expression before ‘*’ token
  703 | bool ParseDuration(absl::string_view dur_string, Duration* d);
      |                                                          ^
/usr/local/include/absl/time/time.h:703:60: error: ‘d’ was not declared in this scope
  703 | bool ParseDuration(absl::string_view dur_string, Duration* d);
      |                                                            ^
/usr/local/include/absl/time/time.h:703:61: error: expression list treated as compound expression in initializer [-fpermissive]
  703 | bool ParseDuration(absl::string_view dur_string, Duration* d);
      |                                                             ^
/usr/local/include/absl/time/time.h:710:26: error: ‘string_view’ is not a member of ‘absl’
  710 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:710:52: error: expected primary-expression before ‘*’ token
  710 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error);
      |                                                    ^
/usr/local/include/absl/time/time.h:710:54: error: ‘dst’ was not declared in this scope
  710 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error);
      |                                                      ^~~
/usr/local/include/absl/time/time.h:710:70: error: expected primary-expression before ‘*’ token
  710 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error);
      |                                                                      ^
/usr/local/include/absl/time/time.h:710:72: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  710 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error);
      |                                                                        ^~~~~
      |                                                                        perror
/usr/local/include/absl/time/time.h:710:77: error: expression list treated as compound expression in initializer [-fpermissive]
  710 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error);
      |                                                                             ^
/usr/local/include/absl/time/time.h:1023:6: error: redefinition of ‘bool absl::AbslParseFlag’
 1023 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/time.h:710:6: note: ‘bool absl::AbslParseFlag’ previously defined here
  710 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error);
      |      ^~~~~~~~~~~~~
/usr/local/include/absl/time/time.h:1023:26: error: ‘string_view’ is not a member of ‘absl’
 1023 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error);
      |                          ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:1023:48: error: expected primary-expression before ‘*’ token
 1023 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error);
      |                                                ^
/usr/local/include/absl/time/time.h:1023:50: error: ‘t’ was not declared in this scope; did you mean ‘tm’?
 1023 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error);
      |                                                  ^
      |                                                  tm
/usr/local/include/absl/time/time.h:1023:64: error: expected primary-expression before ‘*’ token
 1023 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error);
      |                                                                ^
/usr/local/include/absl/time/time.h:1023:66: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
 1023 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error);
      |                                                                  ^~~~~
      |                                                                  perror
/usr/local/include/absl/time/time.h:1227:32: error: ‘string_view’ is not a member of ‘absl’
 1227 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) {
      |                                ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:1227:58: error: expected primary-expression before ‘*’ token
 1227 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) {
      |                                                          ^
/usr/local/include/absl/time/time.h:1227:60: error: ‘tz’ was not declared in this scope; did you mean ‘tm’?
 1227 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) {
      |                                                            ^~
      |                                                            tm
/usr/local/include/absl/time/time.h:1227:62: error: expression list treated as compound expression in initializer [-fpermissive]
 1227 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) {
      |                                                              ^
/usr/local/include/absl/time/time.h:1469:59: error: ‘string_view’ is not a member of ‘absl’
 1469 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(absl::string_view format,
      |                                                           ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:1470:58: error: expected primary-expression before ‘t’
 1470 |                                                     Time t, TimeZone tz);
      |                                                          ^
/usr/local/include/absl/time/time.h:1470:70: error: expected primary-expression before ‘tz’
 1470 |                                                     Time t, TimeZone tz);
      |                                                                      ^~
/usr/local/include/absl/time/time.h:1475:72: error: ‘std::string absl::FormatTime(absl::Time, absl::TimeZone)’ redeclared as different kind of entity
 1475 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(Time t, TimeZone tz);
      |                                                                        ^
/usr/local/include/absl/time/time.h:1469:42: note: previous declaration ‘std::string absl::FormatTime’
 1469 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(absl::string_view format,
      |                                          ^~~~~~~~~~
/usr/local/include/absl/time/time.h:1476:59: error: ‘std::string absl::FormatTime(absl::Time)’ redeclared as different kind of entity
 1476 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(Time t);
      |                                                           ^
/usr/local/include/absl/time/time.h:1469:42: note: previous declaration ‘std::string absl::FormatTime’
 1469 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(absl::string_view format,
      |                                          ^~~~~~~~~~
/usr/local/include/absl/time/time.h: In function ‘std::ostream& absl::operator<<(std::ostream&, absl::Time)’:
/usr/local/include/absl/time/time.h:1480:26: error: no match for call to ‘(std::string {aka std::__cxx11::basic_string<char>}) (absl::Time&)’
 1480 |   return os << FormatTime(t);
      |                ~~~~~~~~~~^~~
/usr/local/include/absl/time/time.h: In function ‘void absl::AbslStringify(Sink&, absl::Time)’:
/usr/local/include/absl/time/time.h:1486:25: error: no match for call to ‘(std::string {aka std::__cxx11::basic_string<char>}) (absl::Time&)’
 1486 |   sink.Append(FormatTime(t));
      |               ~~~~~~~~~~^~~
/usr/local/include/absl/time/time.h: At global scope:
/usr/local/include/absl/time/time.h:1538:22: error: ‘string_view’ is not a member of ‘absl’
 1538 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time,
      |                      ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:1538:48: error: ‘string_view’ is not a member of ‘absl’
 1538 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time,
      |                                                ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:1538:71: error: expected primary-expression before ‘*’ token
 1538 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time,
      |                                                                       ^
/usr/local/include/absl/time/time.h:1539:27: error: expected primary-expression before ‘*’ token
 1539 |                std::string* err);
      |                           ^
/usr/local/include/absl/time/time.h:1539:29: error: ‘err’ was not declared in this scope; did you mean ‘erf’?
 1539 |                std::string* err);
      |                             ^~~
      |                             erf
/usr/local/include/absl/time/time.h:1539:32: error: expression list treated as compound expression in initializer [-fpermissive]
 1539 |                std::string* err);
      |                                ^
/usr/local/include/absl/time/time.h:1548:6: error: redefinition of ‘bool absl::ParseTime’
 1548 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz,
      |      ^~~~~~~~~
/usr/local/include/absl/time/time.h:1538:6: note: ‘bool absl::ParseTime’ previously defined here
 1538 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time,
      |      ^~~~~~~~~
/usr/local/include/absl/time/time.h:1548:22: error: ‘string_view’ is not a member of ‘absl’
 1548 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz,
      |                      ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:1548:48: error: ‘string_view’ is not a member of ‘absl’
 1548 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz,
      |                                                ^~~~~~~~~~~
/usr/local/include/absl/time/time.h:1548:76: error: expected primary-expression before ‘tz’
 1548 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz,
      |                                                                            ^~
/usr/local/include/absl/time/time.h:1549:20: error: expected primary-expression before ‘*’ token
 1549 |                Time* time, std::string* err);
      |                    ^
/usr/local/include/absl/time/time.h:1549:39: error: expected primary-expression before ‘*’ token
 1549 |                Time* time, std::string* err);
      |                                       ^
/usr/local/include/absl/time/time.h:1549:41: error: ‘err’ was not declared in this scope; did you mean ‘erf’?
 1549 |                Time* time, std::string* err);
      |                                         ^~~
      |                                         erf
In file included from /usr/local/include/absl/types/span.h:69,
                 from /usr/local/include/absl/log/log_entry.h:36,
                 from /usr/local/include/absl/log/internal/log_message.h:41,
                 from /usr/local/include/absl/log/internal/strip.h:24,
                 from /usr/local/include/absl/log/internal/check_op.h:37,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/types/internal/span.h:119:26: error: ‘remove_const_t’ in namespace ‘std’ does not name a template type; did you mean ‘remove_const’?
  119 |   using Container = std::remove_const_t<T>;
      |                          ^~~~~~~~~~~~~~
      |                          remove_const
/usr/local/include/absl/types/internal/span.h:121:44: error: parse error in template argument list
  121 |       decltype(span_internal::GetData(std::declval<const Container&>()));
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/types/internal/span.h:122:64: error: ‘Container’ was not declared in this scope
  122 |   using MutData = decltype(span_internal::GetData(std::declval<Container&>()));
      |                                                                ^~~~~~~~~
/usr/local/include/absl/types/internal/span.h:122:56: error: parse error in template argument list
  122 |   using MutData = decltype(span_internal::GetData(std::declval<Container&>()));
      |                                                        ^~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/types/internal/span.h:130:29: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type
  130 | using EnableIfIsView = std::enable_if_t<IsView<T>::value, int>;
      |                             ^~~~~~~~~~~
/usr/local/include/absl/types/internal/span.h:130:24: note: ‘std::enable_if_t’ is only available from C++14 onwards
  130 | using EnableIfIsView = std::enable_if_t<IsView<T>::value, int>;
      |                        ^~~
/usr/local/include/absl/types/internal/span.h:133:32: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type
  133 | using EnableIfNotIsView = std::enable_if_t<!IsView<T>::value, int>;
      |                                ^~~~~~~~~~~
/usr/local/include/absl/types/internal/span.h:133:27: note: ‘std::enable_if_t’ is only available from C++14 onwards
  133 | using EnableIfNotIsView = std::enable_if_t<!IsView<T>::value, int>;
      |                           ^~~
In file included from /usr/local/include/absl/log/log_entry.h:36,
                 from /usr/local/include/absl/log/internal/log_message.h:41,
                 from /usr/local/include/absl/log/internal/strip.h:24,
                 from /usr/local/include/absl/log/internal/check_op.h:37,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/types/span.h:201:39: error: ‘EnableIfNotIsView’ in namespace ‘absl::span_internal’ does not name a template type
  201 |             typename = span_internal::EnableIfNotIsView<V>>
      |                                       ^~~~~~~~~~~~~~~~~
/usr/local/include/absl/types/span.h:201:56: error: expected ‘>’ before ‘<’ token
  201 |             typename = span_internal::EnableIfNotIsView<V>>
      |                                                        ^
/usr/local/include/absl/types/span.h:210:39: error: ‘EnableIfNotIsView’ in namespace ‘absl::span_internal’ does not name a template type
  210 |             typename = span_internal::EnableIfNotIsView<V>>
      |                                       ^~~~~~~~~~~~~~~~~
/usr/local/include/absl/types/span.h:210:56: error: expected ‘>’ before ‘<’ token
  210 |             typename = span_internal::EnableIfNotIsView<V>>
      |                                                        ^
/usr/local/include/absl/types/span.h:222:28: error: ‘absl::span_internal::EnableIfIsView’ has not been declared
  222 |             span_internal::EnableIfIsView<V> = 0>
      |                            ^~~~~~~~~~~~~~
/usr/local/include/absl/types/span.h:222:42: error: expected ‘>’ before ‘<’ token
  222 |             span_internal::EnableIfIsView<V> = 0>
      |                                          ^
/usr/local/include/absl/types/span.h:223:12: error: ‘template<class T> template<class V, class, class, <typeprefixerror><anonymous> > absl::Span<T>::Span(V&)’ cannot be overloaded with ‘template<class T> template<class V, class, class, class> absl::Span<T>::Span(V&)’
  223 |   explicit Span(V& v) noexcept  // NOLINT(runtime/references)
      |            ^~~~
/usr/local/include/absl/types/span.h:202:12: note: previous declaration ‘template<class T> template<class V, class, class, class> absl::Span<T>::Span(V&)’
  202 |   explicit Span(
      |            ^~~~
/usr/local/include/absl/types/span.h:227:28: error: ‘absl::span_internal::EnableIfIsView’ has not been declared
  227 |             span_internal::EnableIfIsView<V> = 0>
      |                            ^~~~~~~~~~~~~~
/usr/local/include/absl/types/span.h:227:42: error: expected ‘>’ before ‘<’ token
  227 |             span_internal::EnableIfIsView<V> = 0>
      |                                          ^
/usr/local/include/absl/types/span.h:228:13: error: ‘template<class T> template<class V, class, class, <typeprefixerror><anonymous> > constexpr absl::Span<T>::Span(const V&)’ cannot be overloaded with ‘template<class T> template<class V, class, class, class> constexpr absl::Span<T>::Span(const V&)’
  228 |   constexpr Span(const V& v) noexcept  // NOLINT(runtime/explicit)
      |             ^~~~
/usr/local/include/absl/types/span.h:211:13: note: previous declaration ‘template<class T> template<class V, class, class, class> constexpr absl::Span<T>::Span(const V&)’
  211 |   constexpr Span(
      |             ^~~~
In file included from /usr/local/include/absl/log/internal/log_message.h:41,
                 from /usr/local/include/absl/log/internal/strip.h:24,
                 from /usr/local/include/absl/log/internal/check_op.h:37,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/log/log_entry.h:75:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
   75 |   absl::string_view source_filename() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:78:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
   78 |   absl::string_view source_basename() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:144:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  144 |   absl::string_view text_message_with_prefix_and_newline() const
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:150:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  150 |   absl::string_view text_message_with_prefix() const
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:156:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  156 |   absl::string_view text_message_with_newline() const
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:162:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  162 |   absl::string_view text_message() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:177:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  177 |   absl::string_view encoded_message() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:193:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  193 |   absl::string_view stacktrace() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:200:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  200 |   absl::string_view full_filename_;
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:201:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  201 |   absl::string_view base_filename_;
      |         ^~~~~~~~~~~
/usr/local/include/absl/log/log_entry.h:210:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  210 |   absl::string_view encoding_;
      |         ^~~~~~~~~~~
In file included from /usr/local/include/absl/log/internal/log_message.h:43,
                 from /usr/local/include/absl/log/internal/strip.h:24,
                 from /usr/local/include/absl/log/internal/check_op.h:37,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/has_absl_stringify.h:35:15: error: ‘string_view’ has not been declared
   35 |   void Append(string_view v);
      |               ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/has_absl_stringify.h:38:62: error: ‘absl::string_view’ has not been declared
   38 |   friend void AbslFormatFlush(UnimplementedSink* sink, absl::string_view v);
      |                                                              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/has_absl_stringify.h:46:13: error: ‘enable_if_t’ is not a member of ‘std’
   46 |     T, std::enable_if_t<std::is_void<decltype(AbslStringify(
      |             ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/has_absl_stringify.h:46:13: note: ‘std::enable_if_t’ is only available from C++14 onwards
/usr/local/include/absl/strings/internal/has_absl_stringify.h:46:13: error: ‘enable_if_t’ is not a member of ‘std’
/usr/local/include/absl/strings/internal/has_absl_stringify.h:46:13: note: ‘std::enable_if_t’ is only available from C++14 onwards
/usr/local/include/absl/strings/internal/has_absl_stringify.h:48:41: error: type/value mismatch at argument 2 in template parameter list for ‘template<class T, class> struct absl::strings_internal::HasAbslStringify’
   48 |            std::declval<const T&>()))>::value>> : std::true_type {};
      |                                         ^~~~~
/usr/local/include/absl/strings/internal/has_absl_stringify.h:48:41: note:   expected a type, got ‘(<expression error> < std::is_void<decltype (absl::AbslStringify(declval<absl::strings_internal::UnimplementedSink&>(), declval<const T&>()))>::value)’
/usr/local/include/absl/strings/internal/has_absl_stringify.h:48:46: error: expected unqualified-id before ‘>’ token
   48 |            std::declval<const T&>()))>::value>> : std::true_type {};
      |                                              ^~
In file included from /usr/local/include/absl/log/internal/strip.h:24,
                 from /usr/local/include/absl/log/internal/check_op.h:37,
                 from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/log/internal/log_message.h:75:32: error: ‘absl::string_view’ has not been declared
   75 |   LogMessage& AtLocation(absl::string_view file, int line);
      |                                ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:146:32: error: ‘absl::string_view’ has not been declared
  146 |   LogMessage& operator<<(absl::string_view v);
      |                                ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:146:15: error: ‘absl::log_internal::LogMessage& absl::log_internal::LogMessage::operator<<(int)’ cannot be overloaded with ‘absl::log_internal::LogMessage& absl::log_internal::LogMessage::operator<<(int)’
  146 |   LogMessage& operator<<(absl::string_view v);
      |               ^~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:118:15: note: previous declaration ‘absl::log_internal::LogMessage& absl::log_internal::LogMessage::operator<<(int)’
  118 |   LogMessage& operator<<(signed int v) { return operator<< <signed int>(v); }
      |               ^~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:235:34: error: ‘absl::string_view’ has not been declared
  235 |   void CopyToEncodedBuffer(absl::string_view str) ABSL_ATTRIBUTE_NOINLINE;
      |                                  ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:271:21: error: ‘absl::string_view’ has not been declared
  271 |   void Append(absl::string_view v) {
      |                     ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:276:58: error: ‘absl::string_view’ has not been declared
  276 |   friend void AbslFormatFlush(StringifySink* sink, absl::string_view v) {
      |                                                          ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:343:45: error: template-id ‘CopyToEncodedBuffer<absl::log_internal::LogMessage::StringType::kLiteral>’ used as a declarator
  343 |     LogMessage::StringType::kLiteral>(absl::string_view str);
      |                                             ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:342:22: error: variable or field ‘CopyToEncodedBuffer’ declared void
  342 | extern template void LogMessage::CopyToEncodedBuffer<
      |                      ^~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:343:38: error: expected ‘;’ before ‘(’ token
  343 |     LogMessage::StringType::kLiteral>(absl::string_view str);
      |                                      ^
      |                                      ;
/usr/local/include/absl/log/internal/log_message.h:345:48: error: template-id ‘CopyToEncodedBuffer<absl::log_internal::LogMessage::StringType::kNotLiteral>’ used as a declarator
  345 |     LogMessage::StringType::kNotLiteral>(absl::string_view str);
      |                                                ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:344:22: error: variable or field ‘CopyToEncodedBuffer’ declared void
  344 | extern template void LogMessage::CopyToEncodedBuffer<
      |                      ^~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:345:41: error: expected ‘;’ before ‘(’ token
  345 |     LogMessage::StringType::kNotLiteral>(absl::string_view str);
      |                                         ^
      |                                         ;
/usr/local/include/absl/log/internal/log_message.h:358:25: error: ‘absl::string_view’ has not been declared
  358 |                   absl::string_view failure_msg) ABSL_ATTRIBUTE_COLD;
      |                         ^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:366:32: error: ‘absl::string_view’ has not been declared
  366 |                          absl::string_view failure_msg) ABSL_ATTRIBUTE_COLD;
      |                                ^~~~~~~~~~~
In file included from /usr/local/include/absl/log/internal/check_impl.h:19,
                 from /usr/local/include/absl/log/absl_check.h:38,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:132,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/log/internal/check_op.h:310:1: error: ‘string_view’ in namespace ‘absl’ does not name a type
  310 | ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const absl::string_view&);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/log/internal/check_op.h:310:1: error: ‘string_view’ in namespace ‘absl’ does not name a type
  310 | ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const absl::string_view&);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/absl/container/internal/compressed_tuple.h:40,
                 from /usr/local/include/absl/container/internal/inlined_vector.h:30,
                 from /usr/local/include/absl/container/inlined_vector.h:53,
                 from /usr/local/include/absl/strings/cord.h:78,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/utility/utility.h:164:12: error: ‘in_place_t’ has not been declared in ‘std’
  164 | using std::in_place_t;
      |            ^~~~~~~~~~
/usr/local/include/absl/utility/utility.h:165:12: error: ‘in_place’ has not been declared in ‘std’
  165 | using std::in_place;
      |            ^~~~~~~~
/usr/local/include/absl/utility/utility.h:181:12: error: ‘in_place_type’ has not been declared in ‘std’
  181 | using std::in_place_type;
      |            ^~~~~~~~~~~~~
/usr/local/include/absl/utility/utility.h:182:12: error: ‘in_place_type_t’ has not been declared in ‘std’
  182 | using std::in_place_type_t;
      |            ^~~~~~~~~~~~~~~
/usr/local/include/absl/utility/utility.h:198:12: error: ‘in_place_index’ has not been declared in ‘std’
  198 | using std::in_place_index;
      |            ^~~~~~~~~~~~~~
/usr/local/include/absl/utility/utility.h:199:12: error: ‘in_place_index_t’ has not been declared in ‘std’
  199 | using std::in_place_index_t;
      |            ^~~~~~~~~~~~~~~~
In file included from /usr/local/include/absl/container/internal/inlined_vector.h:30,
                 from /usr/local/include/absl/container/inlined_vector.h:53,
                 from /usr/local/include/absl/strings/cord.h:78,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/container/internal/compressed_tuple.h: In function ‘constexpr bool absl::container_internal::internal_compressed_tuple::ShouldUseBase()’:
/usr/local/include/absl/container/internal/compressed_tuple.h:77:16: error: ‘is_final’ is not a member of ‘std’
   77 |          !std::is_final<T>::value &&
      |                ^~~~~~~~
/usr/local/include/absl/container/internal/compressed_tuple.h:77:26: error: expected primary-expression before ‘>’ token
   77 |          !std::is_final<T>::value &&
      |                          ^
/usr/local/include/absl/container/internal/compressed_tuple.h:77:29: error: ‘::value’ has not been declared
   77 |          !std::is_final<T>::value &&
      |                             ^~~~~
/usr/local/include/absl/container/internal/compressed_tuple.h: At global scope:
/usr/local/include/absl/container/internal/compressed_tuple.h:89:46: error: expected ‘)’ before ‘,’ token
   89 |   explicit constexpr Storage(absl::in_place_t, V&& v)
      |                             ~                ^
      |                                              )
/usr/local/include/absl/container/internal/compressed_tuple.h:102:46: error: expected ‘)’ before ‘,’ token
  102 |   explicit constexpr Storage(absl::in_place_t, V&& v)
      |                             ~                ^
      |                                              )
/usr/local/include/absl/container/internal/compressed_tuple.h:125:58: error: expected ‘)’ before ‘,’ token
  125 |   explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args)
      |                                         ~                ^
      |                                                          )
/usr/local/include/absl/container/internal/compressed_tuple.h:137:58: error: expected ‘)’ before ‘,’ token
  137 |   explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args)
      |                                         ~                ^
      |                                                          )
/usr/local/include/absl/container/internal/compressed_tuple.h: In constructor ‘constexpr absl::container_internal::CompressedTuple<Ts>::CompressedTuple(const Ts& ...)’:
/usr/local/include/absl/container/internal/compressed_tuple.h:224:52: error: ‘in_place’ is not a member of ‘absl’
  224 |       : CompressedTuple::CompressedTupleImpl(absl::in_place, base...) {}
      |                                                    ^~~~~~~~
/usr/local/include/absl/container/internal/compressed_tuple.h: In constructor ‘constexpr absl::container_internal::CompressedTuple<Ts>::CompressedTuple(First&&, Vs&& ...)’:
/usr/local/include/absl/container/internal/compressed_tuple.h:236:52: error: ‘in_place’ is not a member of ‘absl’
  236 |       : CompressedTuple::CompressedTupleImpl(absl::in_place,
      |                                                    ^~~~~~~~
In file included from /usr/local/include/absl/container/internal/inlined_vector.h:31,
                 from /usr/local/include/absl/container/inlined_vector.h:53,
                 from /usr/local/include/absl/strings/cord.h:78,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/memory/memory.h: At global scope:
/usr/local/include/absl/memory/memory.h:97:12: error: ‘make_unique’ has not been declared in ‘std’
   97 | using std::make_unique;
      |            ^~~~~~~~~~~
In file included from /usr/local/include/absl/crc/internal/crc_cord_state.h:23,
                 from /usr/local/include/absl/strings/cord.h:79,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/crc/crc32c.h:72:37: error: ‘absl::string_view’ has not been declared
   72 |                               absl::string_view buf_to_add);
      |                                     ^~~~~~~~~~~
/usr/local/include/absl/crc/crc32c.h:82:30: error: ‘string_view’ is not a member of ‘absl’
   82 | crc32c_t ComputeCrc32c(absl::string_view buf);
      |                              ^~~~~~~~~~~
/usr/local/include/absl/crc/crc32c.h:96:36: error: ‘absl::string_view’ has not been declared
   96 |                              absl::string_view buf_to_add) {
      |                                    ^~~~~~~~~~~
/usr/local/include/absl/crc/crc32c.h: In function ‘absl::crc32c_t absl::ExtendCrc32c(absl::crc32c_t, int)’:
/usr/local/include/absl/crc/crc32c.h:98:18: error: request for member ‘size’ in ‘buf_to_add’, which is of non-class type ‘int’
   98 |   if (buf_to_add.size() <= 64) {
      |                  ^~~~
/usr/local/include/absl/crc/crc32c.h:100:59: error: request for member ‘data’ in ‘buf_to_add’, which is of non-class type ‘int’
  100 |     if (crc_internal::ExtendCrc32cInline(&crc, buf_to_add.data(),
      |                                                           ^~~~
/usr/local/include/absl/crc/crc32c.h:101:53: error: request for member ‘size’ in ‘buf_to_add’, which is of non-class type ‘int’
  101 |                                          buf_to_add.size())) {
      |                                                     ^~~~
In file included from /usr/local/include/absl/functional/any_invocable.h:42,
                 from /usr/local/include/absl/functional/internal/function_ref.h:23,
                 from /usr/local/include/absl/functional/function_ref.h:54,
                 from /usr/local/include/absl/strings/cord.h:80,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/functional/internal/any_invocable.h: At global scope:
/usr/local/include/absl/functional/internal/any_invocable.h:380:28: error: ‘in_place_type_t’ is not a member of ‘absl’
  380 | struct IsInPlaceType<absl::in_place_type_t<T>> : std::true_type {};
      |                            ^~~~~~~~~~~~~~~
/usr/local/include/absl/functional/internal/any_invocable.h:380:28: error: ‘in_place_type_t’ is not a member of ‘absl’
/usr/local/include/absl/functional/internal/any_invocable.h:380:44: error: template argument 1 is invalid
  380 | struct IsInPlaceType<absl::in_place_type_t<T>> : std::true_type {};
      |                                            ^
/usr/local/include/absl/functional/internal/any_invocable.h:380:45: error: expected unqualified-id before ‘>’ token
  380 | struct IsInPlaceType<absl::in_place_type_t<T>> : std::true_type {};
      |                                             ^~
/usr/local/include/absl/functional/internal/any_invocable.h:477:42: error: expected ‘)’ before ‘<’ token
  477 |   explicit CoreImpl(absl::in_place_type_t<QualTRef>, Args&&... args) {
      |                    ~                     ^
      |                                          )
/usr/local/include/absl/functional/internal/any_invocable.h:867:1: error: expected ‘)’ before ‘<’ token
  867 | ABSL_INTERNAL_ANY_INVOCABLE_IMPL(, , &);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/functional/internal/any_invocable.h:868:1: error: expected ‘)’ before ‘<’ token
  868 | ABSL_INTERNAL_ANY_INVOCABLE_IMPL(const, , const&);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/functional/internal/any_invocable.h:871:1: error: expected ‘)’ before ‘<’ token
  871 | ABSL_INTERNAL_ANY_INVOCABLE_IMPL(, &, &);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/functional/internal/any_invocable.h:872:1: error: expected ‘)’ before ‘<’ token
  872 | ABSL_INTERNAL_ANY_INVOCABLE_IMPL(const, &, const&);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/functional/internal/any_invocable.h:875:1: error: expected ‘)’ before ‘<’ token
  875 | ABSL_INTERNAL_ANY_INVOCABLE_IMPL(, &&, &&);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/functional/internal/any_invocable.h:876:1: error: expected ‘)’ before ‘<’ token
  876 | ABSL_INTERNAL_ANY_INVOCABLE_IMPL(const, &&, const&&);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/absl/functional/internal/function_ref.h:23,
                 from /usr/local/include/absl/functional/function_ref.h:54,
                 from /usr/local/include/absl/strings/cord.h:80,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/functional/any_invocable.h:200:46: error: expected ‘)’ before ‘<’ token
  200 |   explicit AnyInvocable(absl::in_place_type_t<T>, Args&&... args)
      |                        ~                     ^
      |                                              )
/usr/local/include/absl/functional/any_invocable.h:212:46: error: expected ‘)’ before ‘<’ token
  212 |   explicit AnyInvocable(absl::in_place_type_t<T>,
      |                        ~                     ^
      |                                              )
In file included from /usr/local/include/absl/strings/cord_analysis.h:22,
                 from /usr/local/include/absl/strings/cord.h:82,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/cord_internal.h:367:55: error: expected ‘)’ before ‘str’
  367 |   explicit constexpr CordRepExternal(absl::string_view str)
      |                                     ~                 ^~~~
      |                                                       )
/usr/local/include/absl/strings/internal/cord_internal.h:368:45: error: expected unqualified-id before ‘,’ token
  368 |       : CordRep(RefcountAndFlags::Immortal{}, str.size()),
      |                                             ^
/usr/local/include/absl/strings/internal/cord_internal.h:385:50: error: ‘string_view’ is not a member of ‘absl’
  385 |                                  Releaser, absl::string_view>>
      |                                                  ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h:385:50: error: ‘string_view’ is not a member of ‘absl’
/usr/local/include/absl/strings/internal/cord_internal.h:385:50: error: template argument 2 is invalid
/usr/local/include/absl/strings/internal/cord_internal.h:386:55: error: ‘absl::string_view’ has not been declared
  386 | void InvokeReleaser(Rank0, Releaser&& releaser, absl::string_view data) {
      |                                                       ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h:392:55: error: ‘absl::string_view’ has not been declared
  392 | void InvokeReleaser(Rank1, Releaser&& releaser, absl::string_view) {
      |                                                       ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h: In destructor ‘absl::cord_internal::CordRepExternalImpl<Releaser>::~CordRepExternalImpl()’:
/usr/local/include/absl/strings/internal/cord_internal.h:411:26: error: ‘string_view’ is not a member of ‘absl’
  411 |                    absl::string_view(base, length));
      |                          ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h: At global scope:
/usr/local/include/absl/strings/internal/cord_internal.h:480:32: error: ‘string_view’ is not a member of ‘absl’
  480 | constexpr char GetOrNull(absl::string_view data, size_t pos) {
      |                                ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h:480:57: error: expected primary-expression before ‘pos’
  480 | constexpr char GetOrNull(absl::string_view data, size_t pos) {
      |                                                         ^~~
/usr/local/include/absl/strings/internal/cord_internal.h:480:60: error: expression list treated as compound expression in initializer [-fpermissive]
  480 | constexpr char GetOrNull(absl::string_view data, size_t pos) {
      |                                                            ^
/usr/local/include/absl/strings/internal/cord_internal.h:542:41: error: expected ‘)’ before ‘sv’
  542 |   constexpr InlineData(absl::string_view sv, CordRep* rep) noexcept
      |                       ~                 ^~~
      |                                         )
/usr/local/include/absl/strings/internal/cord_internal.h:723:45: error: expected ‘)’ before ‘chars’
  723 |     explicit constexpr Rep(absl::string_view chars)
      |                           ~                 ^~~~~~
      |                                             )
/usr/local/include/absl/strings/internal/cord_internal.h:739:38: error: expected unqualified-id before ‘{’ token
  739 |                GetOrNull(chars, 14)} {}
      |                                      ^
/usr/local/include/absl/strings/internal/cord_internal.h:719:20: error: defaulted declaration ‘constexpr absl::cord_internal::InlineData::Rep& absl::cord_internal::InlineData::Rep::operator=(const absl::cord_internal::InlineData::Rep&) const’ does not match the expected signature
  719 |     constexpr Rep& operator=(const Rep&) = default;
      |                    ^~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h:719:20: note: expected signature: ‘absl::cord_internal::InlineData::Rep& absl::cord_internal::InlineData::Rep::operator=(const absl::cord_internal::InlineData::Rep&)’
/usr/local/include/absl/strings/internal/cord_internal.h:719:20: error: explicitly defaulted function ‘constexpr absl::cord_internal::InlineData::Rep& absl::cord_internal::InlineData::Rep::operator=(const absl::cord_internal::InlineData::Rep&) const’ cannot be declared ‘constexpr’ because the implicit declaration is not ‘constexpr’:
/usr/local/include/absl/strings/internal/cord_internal.h:709:12: note: defaulted constructor calls non-‘constexpr’ ‘absl::cord_internal::InlineData::Rep::AsTree& absl::cord_internal::InlineData::Rep::AsTree::operator=(const absl::cord_internal::InlineData::Rep::AsTree&)’
  709 |     struct AsTree {
      |            ^~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h:709:12: note: ‘absl::cord_internal::InlineData::Rep::AsTree& absl::cord_internal::InlineData::Rep::AsTree::operator=(const absl::cord_internal::InlineData::Rep::AsTree&)’ is not usable as a ‘constexpr’ function because:
/usr/local/include/absl/strings/internal/cord_internal.h: In constructor ‘absl::cord_internal::InlineData::InlineData()’:
/usr/local/include/absl/strings/internal/cord_internal.h:529:52: error: ‘constexpr’ constructor does not have empty body
  529 |   constexpr InlineData() noexcept { poison_this(); }
      |                                                    ^
/usr/local/include/absl/strings/internal/cord_internal.h: In member function ‘constexpr void absl::cord_internal::InlineData::poison_this() const’:
/usr/local/include/absl/strings/internal/cord_internal.h:870:16: error: invalid return type ‘void’ of ‘constexpr’ function ‘constexpr void absl::cord_internal::InlineData::poison_this() const’
  870 | constexpr void InlineData::poison_this() {}
      |                ^~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h: In member function ‘constexpr void absl::cord_internal::InlineData::unpoison() const’:
/usr/local/include/absl/strings/internal/cord_internal.h:871:16: error: invalid return type ‘void’ of ‘constexpr’ function ‘constexpr void absl::cord_internal::InlineData::unpoison() const’
  871 | constexpr void InlineData::unpoison() {}
      |                ^~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_internal.h: In member function ‘constexpr void absl::cord_internal::InlineData::poison() const’:
/usr/local/include/absl/strings/internal/cord_internal.h:872:16: error: invalid return type ‘void’ of ‘constexpr’ function ‘constexpr void absl::cord_internal::InlineData::poison() const’
  872 | constexpr void InlineData::poison() {}
      |                ^~~~~~~~~~
In file included from /usr/local/include/absl/strings/cord_buffer.h:38,
                 from /usr/local/include/absl/strings/cord.h:83,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/cord_rep_flat.h: At global scope:
/usr/local/include/absl/strings/internal/cord_rep_flat.h:161:36: error: ‘absl::string_view’ has not been declared
  161 |   static CordRepFlat* Create(absl::string_view data, size_t extra = 0) {
      |                                    ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_flat.h: In static member function ‘static absl::cord_internal::CordRepFlat* absl::cord_internal::CordRepFlat::Create(int, size_t)’:
/usr/local/include/absl/strings/internal/cord_rep_flat.h:163:34: error: request for member ‘size’ in ‘data’, which is of non-class type ‘int’
  163 |     CordRepFlat* flat = New(data.size() + (std::min)(extra, kMaxFlatLength));
      |                                  ^~~~
/usr/local/include/absl/strings/internal/cord_rep_flat.h:164:31: error: request for member ‘data’ in ‘data’, which is of non-class type ‘int’
  164 |     memcpy(flat->Data(), data.data(), data.size());
      |                               ^~~~
/usr/local/include/absl/strings/internal/cord_rep_flat.h:164:44: error: request for member ‘size’ in ‘data’, which is of non-class type ‘int’
  164 |     memcpy(flat->Data(), data.data(), data.size());
      |                                            ^~~~
/usr/local/include/absl/strings/internal/cord_rep_flat.h:165:25: error: request for member ‘size’ in ‘data’, which is of non-class type ‘int’
  165 |     flat->length = data.size();
      |                         ^~~~
In file included from /usr/local/include/absl/strings/cord.h:83,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/cord_buffer.h: At global scope:
/usr/local/include/absl/strings/cord_buffer.h:435:46: error: ‘absl::string_view’ has not been declared
  435 |   cord_internal::CordRep* ConsumeValue(absl::string_view& short_value) {
      |                                              ^~~~~~~~~~~
/usr/local/include/absl/strings/cord_buffer.h: In member function ‘absl::cord_internal::CordRep* absl::CordBuffer::ConsumeValue(int&)’:
/usr/local/include/absl/strings/cord_buffer.h:438:27: error: ‘string_view’ is not a member of ‘absl’
  438 |       short_value = absl::string_view(rep_.data(), rep_.short_length());
      |                           ^~~~~~~~~~~
/usr/local/include/absl/strings/cord_buffer.h: In static member function ‘static constexpr size_t absl::CordBuffer::MaximumPayload(size_t)’:
/usr/local/include/absl/strings/cord_buffer.h:462:20: error: call to non-‘constexpr’ function ‘const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = long unsigned int]’
  462 |   return (std::min)(kCustomLimit, block_size) - cord_internal::kFlatOverhead;
      |          ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/char_traits.h:39,
                 from /usr/include/c++/11/string:40,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:8,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: ‘const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = long unsigned int]’ declared here
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
In file included from /usr/local/include/absl/strings/cord.h:84,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/cord_data_edge.h: At global scope:
/usr/local/include/absl/strings/internal/cord_data_edge.h:45:14: error: ‘string_view’ in namespace ‘absl’ does not name a type
   45 | inline absl::string_view EdgeData(const CordRep* edge) {
      |              ^~~~~~~~~~~
In file included from /usr/local/include/absl/strings/cord.h:86,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/cord_rep_btree.h:208:51: error: ‘string_view’ has not been declared
  208 |   static CordRepBtree* Append(CordRepBtree* tree, string_view data,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:210:52: error: ‘string_view’ has not been declared
  210 |   static CordRepBtree* Prepend(CordRepBtree* tree, string_view data,
      |                                                    ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:239:21: error: ‘absl::string_view’ has not been declared
  239 |   bool IsFlat(absl::string_view* fragment) const;
      |                     ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:245:46: error: ‘absl::string_view’ has not been declared
  245 |   bool IsFlat(size_t offset, size_t n, absl::string_view* fragment) const;
      |                                              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:321:16: error: ‘string_view’ in namespace ‘absl’ does not name a type
  321 |   inline absl::string_view Data(size_t index) const;
      |                ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:346:46: error: ‘absl::string_view’ has not been declared
  346 |   static void Dump(const CordRep* rep, absl::string_view label,
      |                                              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:348:46: error: ‘absl::string_view’ has not been declared
  348 |   static void Dump(const CordRep* rep, absl::string_view label,
      |                                              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:455:38: error: ‘absl::string_view’ has not been declared
  455 |   static CordRepBtree* NewLeaf(absl::string_view data, size_t extra);
      |                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:535:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  535 |   absl::string_view AddData(absl::string_view data, size_t extra);
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:571:58: error: ‘absl::string_view’ has not been declared
  571 |   static CordRepBtree* AddData(CordRepBtree* tree, absl::string_view data,
      |                                                          ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree.h:637:14: error: ‘string_view’ in namespace ‘absl’ does not name a type
  637 | inline absl::string_view CordRepBtree::Data(size_t index) const {
      |              ^~~~~~~~~~~
In file included from /usr/local/include/absl/strings/cord.h:87,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:112:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  112 |   absl::string_view Init(CordRepBtree* tree);
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:118:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  118 |   absl::string_view Next();
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:122:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  122 |   absl::string_view Skip(size_t skip);
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:146:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  146 |   absl::string_view Read(size_t n, size_t chunk_size, CordRep*& tree);
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:155:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  155 |   absl::string_view Seek(size_t offset);
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:167:14: error: ‘string_view’ in namespace ‘absl’ does not name a type
  167 | inline absl::string_view CordRepBtreeReader::Init(CordRepBtree* tree) {
      |              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:174:14: error: ‘string_view’ in namespace ‘absl’ does not name a type
  174 | inline absl::string_view CordRepBtreeReader::Next() {
      |              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:182:14: error: ‘string_view’ in namespace ‘absl’ does not name a type
  182 | inline absl::string_view CordRepBtreeReader::Skip(size_t skip) {
      |              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_btree_reader.h:197:14: error: ‘string_view’ in namespace ‘absl’ does not name a type
  197 | inline absl::string_view CordRepBtreeReader::Seek(size_t offset) {
      |              ^~~~~~~~~~~
In file included from /usr/local/include/absl/strings/str_cat.h:102,
                 from /usr/local/include/absl/container/internal/layout.h:176,
                 from /usr/local/include/absl/strings/internal/cord_rep_ring.h:25,
                 from /usr/local/include/absl/strings/cord.h:89,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/stringify_sink.h:32:15: error: ‘string_view’ has not been declared
   32 |   void Append(string_view v);
      |               ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/stringify_sink.h:35:58: error: ‘absl::string_view’ has not been declared
   35 |   friend void AbslFormatFlush(StringifySink* sink, absl::string_view v) {
      |                                                          ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/stringify_sink.h:41:10: error: ‘string_view’ does not name a type
   41 |   friend string_view ExtractStringification(StringifySink& sink, const T& v);
      |          ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/stringify_sink.h:47:1: error: ‘string_view’ does not name a type
   47 | string_view ExtractStringification(StringifySink& sink, const T& v) {
      | ^~~~~~~~~~~
In file included from /usr/local/include/absl/strings/str_cat.h:103,
                 from /usr/local/include/absl/container/internal/layout.h:176,
                 from /usr/local/include/absl/strings/internal/cord_rep_ring.h:25,
                 from /usr/local/include/absl/strings/cord.h:89,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/numbers.h:62:44: error: ‘string_view’ is not a member of ‘absl’
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:69: error: expected primary-expression before ‘*’ token
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                                                     ^
/usr/local/include/absl/strings/numbers.h:62:71: error: ‘out’ was not declared in this scope
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                                                       ^~~
/usr/local/include/absl/strings/numbers.h:62:74: error: expression list treated as compound expression in initializer [-fpermissive]
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                                                          ^
/usr/local/include/absl/strings/numbers.h:73:44: error: ‘string_view’ is not a member of ‘absl’
   73 | ABSL_MUST_USE_RESULT bool SimpleAtof(absl::string_view str, float* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:73:61: error: expected primary-expression before ‘float’
   73 | ABSL_MUST_USE_RESULT bool SimpleAtof(absl::string_view str, float* out);
      |                                                             ^~~~~
/usr/local/include/absl/strings/numbers.h:73:71: error: expression list treated as compound expression in initializer [-fpermissive]
   73 | ABSL_MUST_USE_RESULT bool SimpleAtof(absl::string_view str, float* out);
      |                                                                       ^
/usr/local/include/absl/strings/numbers.h:84:44: error: ‘string_view’ is not a member of ‘absl’
   84 | ABSL_MUST_USE_RESULT bool SimpleAtod(absl::string_view str, double* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:84:61: error: expected primary-expression before ‘double’
   84 | ABSL_MUST_USE_RESULT bool SimpleAtod(absl::string_view str, double* out);
      |                                                             ^~~~~~
/usr/local/include/absl/strings/numbers.h:84:72: error: expression list treated as compound expression in initializer [-fpermissive]
   84 | ABSL_MUST_USE_RESULT bool SimpleAtod(absl::string_view str, double* out);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:94:44: error: ‘string_view’ is not a member of ‘absl’
   94 | ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:94:61: error: expected primary-expression before ‘bool’
   94 | ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* out);
      |                                                             ^~~~
/usr/local/include/absl/strings/numbers.h:94:70: error: expression list treated as compound expression in initializer [-fpermissive]
   94 | ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* out);
      |                                                                      ^
/usr/local/include/absl/strings/numbers.h:107:47: error: ‘string_view’ is not a member of ‘absl’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:72: error: expected primary-expression before ‘*’ token
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:107:74: error: ‘out’ was not declared in this scope
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                                                          ^~~
/usr/local/include/absl/strings/numbers.h:107:77: error: expression list treated as compound expression in initializer [-fpermissive]
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                                                             ^
/usr/local/include/absl/strings/numbers.h:110:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  110 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:110:54: error: ‘string_view’ is not a member of ‘absl’
  110 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:111:60: error: expected primary-expression before ‘*’ token
  111 |                                                absl::int128* out);
      |                                                            ^
/usr/local/include/absl/strings/numbers.h:111:62: error: ‘out’ was not declared in this scope
  111 |                                                absl::int128* out);
      |                                                              ^~~
/usr/local/include/absl/strings/numbers.h:112:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  112 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:112:54: error: ‘string_view’ is not a member of ‘absl’
  112 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:113:61: error: expected primary-expression before ‘*’ token
  113 |                                                absl::uint128* out);
      |                                                             ^
/usr/local/include/absl/strings/numbers.h:113:63: error: ‘out’ was not declared in this scope
  113 |                                                absl::uint128* out);
      |                                                               ^~~
/usr/local/include/absl/strings/numbers.h:139:30: error: ‘string_view’ is not a member of ‘absl’
  139 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:139:55: error: expected primary-expression before ‘*’ token
  139 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                       ^
/usr/local/include/absl/strings/numbers.h:139:57: error: ‘value’ was not declared in this scope
  139 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                         ^~~~~
/usr/local/include/absl/strings/numbers.h:139:64: error: expected primary-expression before ‘int’
  139 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                                ^~~
/usr/local/include/absl/strings/numbers.h:139:72: error: expression list treated as compound expression in initializer [-fpermissive]
  139 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:140:30: error: ‘string_view’ is not a member of ‘absl’
  140 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:140:55: error: expected primary-expression before ‘*’ token
  140 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                       ^
/usr/local/include/absl/strings/numbers.h:140:57: error: ‘value’ was not declared in this scope
  140 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                         ^~~~~
/usr/local/include/absl/strings/numbers.h:140:64: error: expected primary-expression before ‘int’
  140 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                                ^~~
/usr/local/include/absl/strings/numbers.h:140:72: error: expression list treated as compound expression in initializer [-fpermissive]
  140 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:141:31: error: ‘string_view’ is not a member of ‘absl’
  141 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:141:61: error: expected primary-expression before ‘*’ token
  141 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
      |                                                             ^
/usr/local/include/absl/strings/numbers.h:141:63: error: ‘value’ was not declared in this scope
  141 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
      |                                                               ^~~~~
/usr/local/include/absl/strings/numbers.h:142:26: error: expected primary-expression before ‘int’
  142 |                          int base);
      |                          ^~~
/usr/local/include/absl/strings/numbers.h:142:34: error: expression list treated as compound expression in initializer [-fpermissive]
  142 |                          int base);
      |                                  ^
/usr/local/include/absl/strings/numbers.h:143:31: error: ‘string_view’ is not a member of ‘absl’
  143 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:143:57: error: expected primary-expression before ‘*’ token
  143 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                         ^
/usr/local/include/absl/strings/numbers.h:143:59: error: ‘value’ was not declared in this scope
  143 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                           ^~~~~
/usr/local/include/absl/strings/numbers.h:143:66: error: expected primary-expression before ‘int’
  143 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                                  ^~~
/usr/local/include/absl/strings/numbers.h:143:74: error: expression list treated as compound expression in initializer [-fpermissive]
  143 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                                          ^
/usr/local/include/absl/strings/numbers.h:144:31: error: ‘string_view’ is not a member of ‘absl’
  144 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:144:57: error: expected primary-expression before ‘*’ token
  144 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                         ^
/usr/local/include/absl/strings/numbers.h:144:59: error: ‘value’ was not declared in this scope
  144 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                           ^~~~~
/usr/local/include/absl/strings/numbers.h:144:66: error: expected primary-expression before ‘int’
  144 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                                  ^~~
/usr/local/include/absl/strings/numbers.h:144:74: error: expression list treated as compound expression in initializer [-fpermissive]
  144 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                                          ^
/usr/local/include/absl/strings/numbers.h:145:32: error: ‘string_view’ is not a member of ‘absl’
  145 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
      |                                ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:145:63: error: expected primary-expression before ‘*’ token
  145 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
      |                                                               ^
/usr/local/include/absl/strings/numbers.h:145:65: error: ‘value’ was not declared in this scope
  145 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
      |                                                                 ^~~~~
/usr/local/include/absl/strings/numbers.h:146:26: error: expected primary-expression before ‘int’
  146 |                          int base);
      |                          ^~~
/usr/local/include/absl/strings/numbers.h:146:34: error: expression list treated as compound expression in initializer [-fpermissive]
  146 |                          int base);
      |                                  ^
/usr/local/include/absl/strings/numbers.h:197:50: error: ‘string_view’ is not a member of ‘absl’
  197 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
      |                                                  ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:197:73: error: expected primary-expression before ‘*’ token
  197 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
      |                                                                         ^
/usr/local/include/absl/strings/numbers.h:197:75: error: ‘out’ was not declared in this scope
  197 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
      |                                                                           ^~~
/usr/local/include/absl/strings/numbers.h:198:44: error: expected primary-expression before ‘int’
  198 |                                            int base) {
      |                                            ^~~
/usr/local/include/absl/strings/numbers.h:198:52: error: expression list treated as compound expression in initializer [-fpermissive]
  198 |                                            int base) {
      |                                                    ^
/usr/local/include/absl/strings/numbers.h:198:53: error: expected ‘;’ before ‘{’ token
  198 |                                            int base) {
      |                                                     ^~
      |                                                     ;
/usr/local/include/absl/strings/numbers.h:266:27: error: redefinition of ‘template<class int_type> bool absl::SimpleAtoi’
  266 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:27: note: ‘template<class int_type> bool absl::SimpleAtoi<int_type>’ previously declared here
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:266:44: error: ‘string_view’ is not a member of ‘absl’
  266 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:266:69: error: expected primary-expression before ‘*’ token
  266 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                                                                     ^
/usr/local/include/absl/strings/numbers.h:266:71: error: ‘out’ was not declared in this scope
  266 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                                                                       ^~~
/usr/local/include/absl/strings/numbers.h:270:51: error: ‘bool absl::SimpleAtoi’ redeclared as different kind of entity
  270 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:27: note: previous declaration ‘template<class int_type> bool absl::SimpleAtoi<int_type>’
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:270:51: error: ‘string_view’ is not a member of ‘absl’
  270 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:271:57: error: expected primary-expression before ‘*’ token
  271 |                                             absl::int128* out) {
      |                                                         ^
/usr/local/include/absl/strings/numbers.h:271:59: error: ‘out’ was not declared in this scope
  271 |                                             absl::int128* out) {
      |                                                           ^~~
/usr/local/include/absl/strings/numbers.h:275:51: error: ‘bool absl::SimpleAtoi’ redeclared as different kind of entity
  275 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:27: note: previous declaration ‘template<class int_type> bool absl::SimpleAtoi<int_type>’
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:275:51: error: ‘string_view’ is not a member of ‘absl’
  275 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:276:58: error: expected primary-expression before ‘*’ token
  276 |                                             absl::uint128* out) {
      |                                                          ^
/usr/local/include/absl/strings/numbers.h:276:60: error: ‘out’ was not declared in this scope
  276 |                                             absl::uint128* out) {
      |                                                            ^~~
/usr/local/include/absl/strings/numbers.h:281:27: error: redefinition of ‘template<class int_type> bool absl::SimpleHexAtoi’
  281 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’ previously declared here
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:281:47: error: ‘string_view’ is not a member of ‘absl’
  281 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:281:72: error: expected primary-expression before ‘*’ token
  281 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:281:74: error: ‘out’ was not declared in this scope
  281 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                                                                          ^~~
/usr/local/include/absl/strings/numbers.h:285:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  285 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:285:54: error: ‘string_view’ is not a member of ‘absl’
  285 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:286:60: error: expected primary-expression before ‘*’ token
  286 |                                                absl::int128* out) {
      |                                                            ^
/usr/local/include/absl/strings/numbers.h:286:62: error: ‘out’ was not declared in this scope
  286 |                                                absl::int128* out) {
      |                                                              ^~~
/usr/local/include/absl/strings/numbers.h:290:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  290 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:290:54: error: ‘string_view’ is not a member of ‘absl’
  290 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:291:61: error: expected primary-expression before ‘*’ token
  291 |                                                absl::uint128* out) {
      |                                                             ^
/usr/local/include/absl/strings/numbers.h:291:63: error: ‘out’ was not declared in this scope
  291 |                                                absl::uint128* out) {
      |                                                               ^~~
In file included from /usr/local/include/absl/container/internal/layout.h:176,
                 from /usr/local/include/absl/strings/internal/cord_rep_ring.h:25,
                 from /usr/local/include/absl/strings/cord.h:89,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/str_cat.h: In function ‘void absl::AbslStringify(S&, absl::Hex)’:
/usr/local/include/absl/strings/str_cat.h:217:25: error: ‘string_view’ is not a member of ‘absl’
  217 |       sink.Append(absl::string_view(end - real_width, real_width));
      |                         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:224:25: error: ‘string_view’ is not a member of ‘absl’
  224 |       sink.Append(absl::string_view(end - hex.width, hex.width));
      |                         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In function ‘void absl::AbslStringify(S&, absl::Dec)’:
/usr/local/include/absl/strings/str_cat.h:292:23: error: ‘string_view’ is not a member of ‘absl’
  292 |     sink.Append(absl::string_view(writer, static_cast<size_t>(end - writer)));
      |                       ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: At global scope:
/usr/local/include/absl/strings/str_cat.h:350:29: error: expected ‘)’ before ‘pc’
  350 |   AlphaNum(absl::string_view pc  // NOLINT(runtime/explicit)
      |           ~                 ^~~
      |                             )
/usr/local/include/absl/strings/str_cat.h:373:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  373 |   absl::string_view::size_type size() const { return piece_.size(); }
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:375:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  375 |   absl::string_view Piece() const { return piece_; }
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:408:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  408 |   absl::string_view piece_;
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(int)’:
/usr/local/include/absl/strings/str_cat.h:312:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  312 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(unsigned int)’:
/usr/local/include/absl/strings/str_cat.h:316:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  316 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long int)’:
/usr/local/include/absl/strings/str_cat.h:320:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  320 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long unsigned int)’:
/usr/local/include/absl/strings/str_cat.h:324:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  324 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long long int)’:
/usr/local/include/absl/strings/str_cat.h:328:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  328 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long long unsigned int)’:
/usr/local/include/absl/strings/str_cat.h:332:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  332 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(float)’:
/usr/local/include/absl/strings/str_cat.h:337:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  337 |       : piece_(digits_, numbers_internal::SixDigitsToBuffer(f, digits_)) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(double)’:
/usr/local/include/absl/strings/str_cat.h:339:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  339 |       : piece_(digits_, numbers_internal::SixDigitsToBuffer(f, digits_)) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const absl::strings_internal::AlphaNumBuffer<size>&)’:
/usr/local/include/absl/strings/str_cat.h:345:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  345 |       : piece_(&buf.data[0], buf.size) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const char*)’:
/usr/local/include/absl/strings/str_cat.h:349:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  349 |       : piece_(NullSafeStringView(c_str)) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h:349:16: error: ‘NullSafeStringView’ was not declared in this scope
  349 |       : piece_(NullSafeStringView(c_str)) {}
      |                ^~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const T&, absl::strings_internal::StringifySink&&)’:
/usr/local/include/absl/strings/str_cat.h:359:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  359 |       : piece_(strings_internal::ExtractStringification(sink, v)) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h:359:34: error: ‘ExtractStringification’ is not a member of ‘absl::strings_internal’
  359 |       : piece_(strings_internal::ExtractStringification(sink, v)) {}
      |                                  ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const std::__cxx11::basic_string<char, std::char_traits<char>, Allocator>&)’:
/usr/local/include/absl/strings/str_cat.h:365:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  365 |       : piece_(str) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In member function ‘const char* absl::AlphaNum::data() const’:
/usr/local/include/absl/strings/str_cat.h:374:37: error: ‘piece_’ was not declared in this scope
  374 |   const char* data() const { return piece_.data(); }
      |                                     ^~~~~~
/usr/local/include/absl/strings/str_cat.h: At global scope:
/usr/local/include/absl/strings/str_cat.h:443:51: error: ‘string_view’ is not a member of ‘absl’
  443 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:443:51: error: ‘string_view’ is not a member of ‘absl’
/usr/local/include/absl/strings/str_cat.h:443:62: error: template argument 1 is invalid
  443 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
      |                                                              ^
/usr/local/include/absl/strings/str_cat.h:445:47: error: ‘string_view’ is not a member of ‘absl’
  445 |                   std::initializer_list<absl::string_view> pieces);
      |                                               ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:445:47: error: ‘string_view’ is not a member of ‘absl’
/usr/local/include/absl/strings/str_cat.h:445:58: error: template argument 1 is invalid
  445 |                   std::initializer_list<absl::string_view> pieces);
      |                                                          ^
/usr/local/include/absl/strings/str_cat.h: In function ‘std::string absl::StrCat(const absl::AlphaNum&)’:
/usr/local/include/absl/strings/str_cat.h:452:34: error: ‘const class absl::AlphaNum’ has no member named ‘size’
  452 |   return std::string(a.data(), a.size());
      |                                  ^~~~
/usr/local/include/absl/strings/str_cat.h: In function ‘std::string absl::StrCat(const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const AV& ...)’:
/usr/local/include/absl/strings/str_cat.h:467:10: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  467 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |          ^~~~~
/usr/local/include/absl/strings/str_cat.h:467:21: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  467 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                     ^~~~~
/usr/local/include/absl/strings/str_cat.h:467:32: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  467 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                ^~~~~
/usr/local/include/absl/strings/str_cat.h:467:43: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  467 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                           ^~~~~
/usr/local/include/absl/strings/str_cat.h:467:54: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  467 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                                      ^~~~~
/usr/local/include/absl/strings/str_cat.h:468:43: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  468 |        static_cast<const AlphaNum&>(args).Piece()...});
      |                                           ^~~~~
/usr/local/include/absl/strings/str_cat.h:466:37: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’
  466 |   return strings_internal::CatPieces(
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
      |                                     |
      |                                     <brace-enclosed initializer list>
  467 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  468 |        static_cast<const AlphaNum&>(args).Piece()...});
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:443:64: note:   initializing argument 1 of ‘std::string absl::strings_internal::CatPieces(int)’
  443 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/local/include/absl/strings/str_cat.h: In function ‘void absl::StrAppend(std::string*, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const AV& ...)’:
/usr/local/include/absl/strings/str_cat.h:512:16: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  512 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                ^~~~~
/usr/local/include/absl/strings/str_cat.h:512:27: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  512 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                           ^~~~~
/usr/local/include/absl/strings/str_cat.h:512:38: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  512 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                      ^~~~~
/usr/local/include/absl/strings/str_cat.h:512:49: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  512 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                                 ^~~~~
/usr/local/include/absl/strings/str_cat.h:512:60: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  512 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                                            ^~~~~
/usr/local/include/absl/strings/str_cat.h:513:49: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  513 |              static_cast<const AlphaNum&>(args).Piece()...});
      |                                                 ^~~~~
/usr/local/include/absl/strings/str_cat.h:511:33: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’
  511 |   strings_internal::AppendPieces(
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
      |                                 |
      |                                 <brace-enclosed initializer list>
  512 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  513 |              static_cast<const AlphaNum&>(args).Piece()...});
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:445:60: note:   initializing argument 2 of ‘void absl::strings_internal::AppendPieces(std::string*, int)’
  445 |                   std::initializer_list<absl::string_view> pieces);
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /usr/local/include/absl/strings/cord.h:89,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/cord_rep_ring.h: At global scope:
/usr/local/include/absl/strings/internal/cord_rep_ring.h:169:48: error: ‘string_view’ has not been declared
  169 |   static CordRepRing* Append(CordRepRing* rep, string_view data,
      |                                                ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:188:49: error: ‘string_view’ has not been declared
  188 |   static CordRepRing* Prepend(CordRepRing* rep, string_view data,
      |                                                 ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:234:21: error: ‘absl::string_view’ has not been declared
  234 |   bool IsFlat(absl::string_view* fragment) const;
      |                     ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:241:48: error: ‘absl::string_view’ has not been declared
  241 |   bool IsFlat(size_t offset, size_t len, absl::string_view* fragment) const;
      |                                                ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:291:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  291 |   absl::string_view entry_data(index_type index) const;
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:529:14: error: ‘string_view’ in namespace ‘absl’ does not name a type
  529 | inline absl::string_view CordRepRing::entry_data(index_type index) const {
      |              ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:582:13: error: ‘bool absl::cord_internal::CordRepRing::IsFlat’ is not a static data member of ‘class absl::cord_internal::CordRepRing’
  582 | inline bool CordRepRing::IsFlat(absl::string_view* fragment) const {
      |             ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:582:39: error: ‘string_view’ is not a member of ‘absl’
  582 | inline bool CordRepRing::IsFlat(absl::string_view* fragment) const {
      |                                       ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:582:52: error: ‘fragment’ was not declared in this scope
  582 | inline bool CordRepRing::IsFlat(absl::string_view* fragment) const {
      |                                                    ^~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:591:39: error: ‘absl::string_view’ has not been declared
  591 |                                 absl::string_view* fragment) const {
      |                                       ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h: In member function ‘bool absl::cord_internal::CordRepRing::IsFlat(size_t, size_t, int*) const’:
/usr/local/include/absl/strings/internal/cord_rep_ring.h:593:15: error: ‘string_view’ in namespace ‘absl’ does not name a type
  593 |   const absl::string_view data = entry_data(pos.index);
      |               ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/cord_rep_ring.h:594:7: error: ‘data’ was not declared in this scope; did you mean ‘data_’?
  594 |   if (data.length() >= len && data.length() - len >= pos.offset) {
      |       ^~~~
      |       data_
In file included from /usr/local/include/absl/strings/cord.h:96,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/internal/string_constant.h: At global scope:
/usr/local/include/absl/strings/internal/string_constant.h:39:48: error: ‘absl::string_view’ has not been declared
   39 |   static constexpr bool TryConstexprEval(absl::string_view view) {
      |                                                ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/string_constant.h:44:26: error: ‘string_view’ in namespace ‘absl’ does not name a type
   44 |   static constexpr absl::string_view value = T{}();
      |                          ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/string_constant.h:44:50: error: expected unqualified-id before ‘)’ token
   44 |   static constexpr absl::string_view value = T{}();
      |                                                  ^
/usr/local/include/absl/strings/internal/string_constant.h:45:19: error: ‘string_view’ in namespace ‘absl’ does not name a type
   45 |   constexpr absl::string_view operator()() const { return value; }
      |                   ^~~~~~~~~~~
/usr/local/include/absl/strings/internal/string_constant.h:49:34: error: ‘value’ was not declared in this scope
   49 |   static_assert(TryConstexprEval(value),
      |                                  ^~~~~
/usr/local/include/absl/strings/internal/string_constant.h: In static member function ‘static constexpr bool absl::strings_internal::StringConstant<T>::TryConstexprEval(int)’:
/usr/local/include/absl/strings/internal/string_constant.h:40:17: error: request for member ‘empty’ in ‘view’, which is of non-class type ‘int’
   40 |     return view.empty() || 2 * view[0] != 1;
      |                 ^~~~~
/usr/local/include/absl/strings/internal/string_constant.h:40:36: error: invalid types ‘int[int]’ for array subscript
   40 |     return view.empty() || 2 * view[0] != 1;
      |                                    ^
/usr/local/include/absl/strings/internal/string_constant.h: At global scope:
/usr/local/include/absl/strings/internal/string_constant.h:55:17: error: ‘string_view’ in namespace ‘absl’ does not name a type
   55 | constexpr absl::string_view StringConstant<T>::value;
      |                 ^~~~~~~~~~~
In file included from /usr/local/include/absl/strings/cord.h:98,
                 from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/types/optional.h:47:12: error: ‘bad_optional_access’ has not been declared in ‘std’
   47 | using std::bad_optional_access;
      |            ^~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/types/optional.h:48:12: error: ‘optional’ has not been declared in ‘std’
   48 | using std::optional;
      |            ^~~~~~~~
/usr/local/include/absl/types/optional.h:49:12: error: ‘make_optional’ has not been declared in ‘std’
   49 | using std::make_optional;
      |            ^~~~~~~~~~~~~
/usr/local/include/absl/types/optional.h:50:12: error: ‘nullopt_t’ has not been declared in ‘std’
   50 | using std::nullopt_t;
      |            ^~~~~~~~~
/usr/local/include/absl/types/optional.h:51:12: error: ‘nullopt’ has not been declared in ‘std’
   51 | using std::nullopt;
      |            ^~~~~~~
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:134,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.h:24,
                 from ....../opencv/build/modules/dnn/opencv-caffe.pb.cc:4:
/usr/local/include/absl/strings/cord.h:105:33: error: ‘string_view’ is not a member of ‘absl’
  105 | Cord MakeCordFromExternal(absl::string_view, Releaser&&);
      |                                 ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:105:54: error: expected primary-expression before ‘&&’ token
  105 | Cord MakeCordFromExternal(absl::string_view, Releaser&&);
      |                                                      ^~
/usr/local/include/absl/strings/cord.h:105:56: error: expected primary-expression before ‘)’ token
  105 | Cord MakeCordFromExternal(absl::string_view, Releaser&&);
      |                                                        ^
/usr/local/include/absl/strings/cord.h:172:34: error: expected ‘)’ before ‘src’
  172 |   explicit Cord(absl::string_view src);
      |                ~                 ^~~~
      |                                  )
/usr/local/include/absl/strings/cord.h:173:25: error: ‘absl::string_view’ has not been declared
  173 |   Cord& operator=(absl::string_view src);
      |                         ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:230:42: error: ‘absl::string_view’ has not been declared
  230 |   friend Cord MakeCordFromExternal(absl::string_view data, Releaser&& releaser);
      |                                          ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:230:79: error: ‘template<class Releaser> absl::Cord absl::MakeCordFromExternal(int, Releaser&&)’ conflicts with a previous declaration
  230 |   friend Cord MakeCordFromExternal(absl::string_view data, Releaser&& releaser);
      |                                                                               ^
/usr/local/include/absl/strings/cord.h:105:6: note: previous declaration ‘template<class Releaser> absl::Cord absl::MakeCordFromExternal<Releaser>’
  105 | Cord MakeCordFromExternal(absl::string_view, Releaser&&);
      |      ^~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:244:21: error: ‘absl::string_view’ has not been declared
  244 |   void Append(absl::string_view src);
      |                     ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:305:22: error: ‘absl::string_view’ has not been declared
  305 |   void Prepend(absl::string_view src);
      |                      ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:363:21: error: ‘absl::string_view’ has not been declared
  363 |   int Compare(absl::string_view rhs) const;
      |                     ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:370:25: error: ‘absl::string_view’ has not been declared
  370 |   bool StartsWith(absl::string_view rhs) const;
      |                         ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:375:23: error: ‘absl::string_view’ has not been declared
  375 |   bool EndsWith(absl::string_view rhs) const;
      |                       ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:428:30: error: ‘string_view’ in namespace ‘absl’ does not name a type
  428 |     using value_type = absl::string_view;
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:430:26: error: expected ‘;’ before ‘value_type’
  430 |     using pointer = const value_type*;
      |                          ^~~~~~~~~~~
      |                          ;
/usr/local/include/absl/strings/cord.h:431:23: error: ‘value_type’ does not name a type
  431 |     using reference = value_type;
      |                       ^~~~~~~~~~
/usr/local/include/absl/strings/cord.h:439:5: error: ‘reference’ does not name a type
  439 |     reference operator*() const;
      |     ^~~~~~~~~
/usr/local/include/absl/strings/cord.h:440:5: error: ‘pointer’ does not name a type
  440 |     pointer operator->() const;
      |     ^~~~~~~
/usr/local/include/absl/strings/cord.h:471:11: error: ‘string_view’ in namespace ‘absl’ does not name a type
  471 |     absl::string_view current_chunk_;
      |           ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:526:30: error: ‘string_view’ in namespace ‘absl’ does not name a type
  526 |     using value_type = absl::string_view;
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:527:23: error: ‘value_type’ does not name a type
  527 |     using reference = value_type&;
      |                       ^~~~~~~~~~
/usr/local/include/absl/strings/cord.h:528:34: error: expected ‘;’ before ‘value_type’
  528 |     using const_reference = const value_type&;
      |                                  ^~~~~~~~~~~
      |                                  ;
/usr/local/include/absl/strings/cord.h:631:16: error: ‘string_view’ in namespace ‘absl’ does not name a type
  631 |   static absl::string_view ChunkRemaining(const CharIterator& it);
      |                ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:719:9: error: ‘optional’ in namespace ‘absl’ does not name a template type
  719 |   absl::optional<absl::string_view> TryFlat() const;
      |         ^~~~~~~~
/usr/local/include/absl/strings/cord.h:726:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  726 |   absl::string_view Flatten();
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:729:55: error: ‘absl::string_view’ has not been declared
  729 |   friend void AbslFormatFlush(absl::Cord* cord, absl::string_view part) {
      |                                                       ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:754:9: error: ‘optional’ in namespace ‘absl’ does not name a template type
  754 |   absl::optional<uint32_t> ExpectedChecksum() const;
      |         ^~~~~~~~
/usr/local/include/absl/strings/cord.h:785:34: error: expected ‘)’ before ‘src’
  785 |   explicit Cord(absl::string_view src, MethodIdentifier method);
      |                ~                 ^~~~
      |                                  )
/usr/local/include/absl/strings/cord.h:789:49: error: ‘absl::string_view’ has not been declared
  789 |   friend bool operator==(const Cord& lhs, absl::string_view rhs);
      |                                                 ^~~~~~~~~~~
/usr/local/include/absl/strings/cord.h:795:50: error: ‘string_view’ is not a member of ‘absl’
  795 |   void ForEachChunk(absl::FunctionRef<void(absl::string_view)>) const;
      |                                                  ^~~~~^Cmake[2]: *** [modules/dnn/CMakeFiles/opencv_dnn.dir/build.make:10380: modules/dnn/CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o] Interrupt
make[1]: *** [CMakeFiles/Makefile2:4094: modules/dnn/CMakeFiles/opencv_dnn.dir/all] Interrupt
make: *** [Makefile:169: all] Interrupt

➜  build git:(4.x) ✗ 
mshabunin commented 1 year ago

error "C++ versions less than C++14 are not supported."

Latest protobuf uses abseil which requires to raise C++ standard (OpenCV uses C++11 by default). Try to build OpenCV with -DCMAKE_CXX_STANDARD=14 (or even 17).

mshabunin commented 1 year ago

I've been able to build OpenCV with protobuf v3.23.3 (Ubuntu 22.04, GCC 11.3):

# build protobuf
cd /work/protobuf/build
cmake -GNinja \
    -Dprotobuf_BUILD_TESTS=OFF \
    -DCMAKE_POSITION_INDEPENDENT_CODE=ON \  # to be able to link into dynamic OpenCV
    -DCMAKE_INSTALL_PREFIX=install \
    /work/protobuf
ninja install

# build OpenCV
cd /work/build-opencv
cmake -GNinja \
    -DCMAKE_PREFIX_PATH=/work/protobuf/build/install \  # to find protobuf
    -DWITH_PROTOBUF=ON \
    -DBUILD_PROTOBUF=OFF \
    -DPROTOBUF_UPDATE_FILES=ON \
    -Dprotobuf_MODULE_COMPATIBLE=ON \ # hack to find protobuf
    -DCMAKE_CXX_STANDARD=17 \  # for absl compatibility, 14 is too low
    -DOPENCV_EXTRA_CXX_FLAGS="-fmax-errors=3"   \  # for quick fail and short logs
    ../opencv

and a minor patch to be able to find protobuf in cmake:

--- a/cmake/OpenCVFindProtobuf.cmake
+++ b/cmake/OpenCVFindProtobuf.cmake
@@ -31,7 +31,7 @@ if(BUILD_PROTOBUF)
   set(HAVE_PROTOBUF TRUE)
 else()
   unset(Protobuf_VERSION CACHE)
-  find_package(Protobuf QUIET)
+  find_package(protobuf)

   # Backwards compatibility
   # Define camel case versions of input variables
@@ -50,7 +50,7 @@ else()
   endforeach()
   # end of compatibility block

-  if(Protobuf_FOUND)
+  if(protobuf_FOUND)
     if(TARGET protobuf::libprotobuf)
       set(Protobuf_LIBRARIES "protobuf::libprotobuf")
     else()

Technically OpenCV does not support latest protobuf yet, but it seem to work with minor workarounds as you can see.

asmorkalov commented 1 year ago

@mshabunin could you propose a pr with the patch?

mshabunin commented 1 year ago

Yes, I'll take a look. A bit more testing with different protobuf versions is required for a good patch.

jiapei100 commented 1 year ago

@mshabunin

Take a look at https://github.com/protocolbuffers/protobuf/releases ? Your protobuf v3.23.3 is already the NEWEST release, right? I'm just using this NEWEST version. But I still got the above ERROR messages while building dnn caffe.

Looking forward to your PR.

mshabunin commented 1 year ago

@jiapei100 , do you mean you tried to build with my patch and latest protobuf? Did you enable C++17 (-DCMAKE_CXX_STANDARD=17)?

jiapei100 commented 1 year ago

@mshabunin

Yes, I've ALREADY tried your patch, with

  1. c++17 enabled
  2. With the following modification.
    
    I've been able to build OpenCV with protobuf v3.23.3 (Ubuntu 22.04, GCC 11.3):

build protobuf

cd /work/protobuf/build cmake -GNinja \ -Dprotobuf_BUILD_TESTS=OFF \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ # to be able to link into dynamic OpenCV -DCMAKE_INSTALL_PREFIX=install \ /work/protobuf ninja install

build OpenCV

cd /work/build-opencv cmake -GNinja \ -DCMAKE_PREFIX_PATH=/work/protobuf/build/install \ # to find protobuf -DWITH_PROTOBUF=ON \ -DBUILD_PROTOBUF=OFF \ -DPROTOBUF_UPDATE_FILES=ON \ -Dprotobuf_MODULE_COMPATIBLE=ON \ # hack to find protobuf -DCMAKE_CXX_STANDARD=17 \ # for absl compatibility, 14 is too low -DOPENCV_EXTRA_CXX_FLAGS="-fmax-errors=3" \ # for quick fail and short logs ../opencv and a minor patch to be able to find protobuf in cmake:

--- a/cmake/OpenCVFindProtobuf.cmake +++ b/cmake/OpenCVFindProtobuf.cmake @@ -31,7 +31,7 @@ if(BUILD_PROTOBUF) set(HAVE_PROTOBUF TRUE) else() unset(Protobuf_VERSION CACHE)

I still failed to build caffe with dnn enabled.

jiapei100 commented 1 year ago

Finally resolved by installing the NEWEST protobuf v23.4.

Also, please refer to my PR: https://github.com/opencv/opencv/pull/23948 .

mshabunin commented 1 year ago

Reopened to keep track of this feature.