protobuf
protobuf copied to clipboard
Which abseil is current protobuf compatible with?
I tried to build protobuf 21.7 from source, with abseil-cpp 20220623.1, but got the following ERROR messages:
[ 0%] Building CXX object CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o
/usr/bin/c++ -DGOOGLE_PROTOBUF_CMAKE_BUILD -DHAVE_ZLIB -DLIBPROTOBUF_EXPORTS -DPROTOBUF_USE_DLLS -Dlibprotobuf_lite_EXPORTS -I....../protobuf/build -I....../protobuf/src -O3 -DNDEBUG -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -std=c++14 -MD -MT CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o -MF CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o.d -o CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o -c ....../protobuf/src/google/protobuf/any_lite.cc
In file included from ....../protobuf/src/google/protobuf/stubs/common.h:46,
from ....../protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h:53,
from ....../protobuf/src/google/protobuf/any_lite.cc:31:
/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 ....../protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h:53,
from ....../protobuf/src/google/protobuf/any_lite.cc:31:
....../protobuf/src/google/protobuf/stubs/common.h:136:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
136 | inline bool IsStructurallyValidUTF8(absl::string_view str) {
| ^~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:136:43: error: ‘bool google::protobuf::internal::IsStructurallyValidUTF8’ redeclared as different kind of entity
136 | inline bool IsStructurallyValidUTF8(absl::string_view str) {
| ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:134:22: note: previous declaration ‘bool google::protobuf::internal::IsStructurallyValidUTF8(const char*, int)’
134 | PROTOBUF_EXPORT bool IsStructurallyValidUTF8(const char* buf, int len);
| ^~~~~~~~~~~~~~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:136:43: error: ‘string_view’ is not a member of ‘absl’
136 | inline bool IsStructurallyValidUTF8(absl::string_view str) {
| ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:141:52: error: ‘string_view’ is not a member of ‘absl’
141 | PROTOBUF_EXPORT int UTF8SpnStructurallyValid(absl::string_view str);
| ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:155:59: error: ‘string_view’ is not a member of ‘absl’
155 | PROTOBUF_EXPORT char* UTF8CoerceToStructurallyValid(absl::string_view str,
| ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:156:53: error: expected primary-expression before ‘char’
156 | char* dst,
| ^~~~
....../protobuf/src/google/protobuf/stubs/common.h:157:53: error: expected primary-expression before ‘char’
157 | char replace_char);
| ^~~~
....../protobuf/src/google/protobuf/stubs/common.h:157:70: error: expression list treated as compound expression in initializer [-fpermissive]
157 | char replace_char);
| ^
In file included from ....../protobuf/src/google/protobuf/any_lite.cc:32:
/usr/local/include/absl/strings/match.h:46:31: error: ‘string_view’ is not a member of ‘absl’
46 | inline bool StrContains(absl::string_view haystack,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:47:31: error: ‘string_view’ is not a member of ‘absl’
47 | absl::string_view needle) noexcept {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:47:49: error: expression list treated as compound expression in initializer [-fpermissive]
47 | absl::string_view needle) noexcept {
| ^
/usr/local/include/absl/strings/match.h:51:13: error: redefinition of ‘bool absl::StrContains’
51 | inline bool StrContains(absl::string_view haystack, char needle) noexcept {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:46:13: note: ‘bool absl::StrContains’ previously defined here
46 | inline bool StrContains(absl::string_view haystack,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:51:31: error: ‘string_view’ is not a member of ‘absl’
51 | inline bool StrContains(absl::string_view haystack, char needle) noexcept {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:51:53: error: expected primary-expression before ‘char’
51 | inline bool StrContains(absl::string_view haystack, char needle) noexcept {
| ^~~~
/usr/local/include/absl/strings/match.h:58:30: error: ‘string_view’ is not a member of ‘absl’
58 | inline bool StartsWith(absl::string_view text,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:59:30: error: ‘string_view’ is not a member of ‘absl’
59 | absl::string_view prefix) noexcept {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:59:48: error: expression list treated as compound expression in initializer [-fpermissive]
59 | absl::string_view prefix) noexcept {
| ^
/usr/local/include/absl/strings/match.h:68:28: error: ‘string_view’ is not a member of ‘absl’
68 | inline bool EndsWith(absl::string_view text,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:69:28: error: ‘string_view’ is not a member of ‘absl’
69 | absl::string_view suffix) noexcept {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:69:46: error: expression list treated as compound expression in initializer [-fpermissive]
69 | absl::string_view suffix) noexcept {
| ^
/usr/local/include/absl/strings/match.h:80:29: error: ‘string_view’ is not a member of ‘absl’
80 | bool EqualsIgnoreCase(absl::string_view piece1,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:81:29: error: ‘string_view’ is not a member of ‘absl’
81 | absl::string_view piece2) noexcept;
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:81:47: error: expression list treated as compound expression in initializer [-fpermissive]
81 | absl::string_view piece2) noexcept;
| ^
/usr/local/include/absl/strings/match.h:87:33: error: ‘string_view’ is not a member of ‘absl’
87 | bool StartsWithIgnoreCase(absl::string_view text,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:88:33: error: ‘string_view’ is not a member of ‘absl’
88 | absl::string_view prefix) noexcept;
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:88:51: error: expression list treated as compound expression in initializer [-fpermissive]
88 | absl::string_view prefix) noexcept;
| ^
/usr/local/include/absl/strings/match.h:94:31: error: ‘string_view’ is not a member of ‘absl’
94 | bool EndsWithIgnoreCase(absl::string_view text,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:95:31: error: ‘string_view’ is not a member of ‘absl’
95 | absl::string_view suffix) noexcept;
| ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:95:49: error: expression list treated as compound expression in initializer [-fpermissive]
95 | absl::string_view suffix) noexcept;
| ^
In file included from /usr/local/include/absl/strings/str_cat.h:64,
from ....../protobuf/src/google/protobuf/any_lite.cc:33:
/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:144:30: error: ‘string_view’ is not a member of ‘absl’
144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:144:55: error: expected primary-expression before ‘*’ token
144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:144:57: error: ‘value’ was not declared in this scope
144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
| ^~~~~
/usr/local/include/absl/strings/numbers.h:144:64: error: expected primary-expression before ‘int’
144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
| ^~~
/usr/local/include/absl/strings/numbers.h:144:72: error: expression list treated as compound expression in initializer [-fpermissive]
144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:145:30: error: ‘string_view’ is not a member of ‘absl’
145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:145:55: error: expected primary-expression before ‘*’ token
145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:145:57: error: ‘value’ was not declared in this scope
145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
| ^~~~~
/usr/local/include/absl/strings/numbers.h:145:64: error: expected primary-expression before ‘int’
145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
| ^~~
/usr/local/include/absl/strings/numbers.h:145:72: error: expression list treated as compound expression in initializer [-fpermissive]
145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:146:31: error: ‘string_view’ is not a member of ‘absl’
146 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:146:61: error: expected primary-expression before ‘*’ token
146 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
| ^
/usr/local/include/absl/strings/numbers.h:146:63: error: ‘value’ was not declared in this scope
146 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
| ^~~~~
/usr/local/include/absl/strings/numbers.h:147:26: error: expected primary-expression before ‘int’
147 | int base);
| ^~~
/usr/local/include/absl/strings/numbers.h:147:34: error: expression list treated as compound expression in initializer [-fpermissive]
147 | int base);
| ^
/usr/local/include/absl/strings/numbers.h:148:31: error: ‘string_view’ is not a member of ‘absl’
148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:148:57: error: expected primary-expression before ‘*’ token
148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:148:59: error: ‘value’ was not declared in this scope
148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
| ^~~~~
/usr/local/include/absl/strings/numbers.h:148:66: error: expected primary-expression before ‘int’
148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
| ^~~
/usr/local/include/absl/strings/numbers.h:148:74: error: expression list treated as compound expression in initializer [-fpermissive]
148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:149:31: error: ‘string_view’ is not a member of ‘absl’
149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:149:57: error: expected primary-expression before ‘*’ token
149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:149:59: error: ‘value’ was not declared in this scope
149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
| ^~~~~
/usr/local/include/absl/strings/numbers.h:149:66: error: expected primary-expression before ‘int’
149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
| ^~~
/usr/local/include/absl/strings/numbers.h:149:74: error: expression list treated as compound expression in initializer [-fpermissive]
149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
| ^
/usr/local/include/absl/strings/numbers.h:150:32: error: ‘string_view’ is not a member of ‘absl’
150 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:150:63: error: expected primary-expression before ‘*’ token
150 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
| ^
/usr/local/include/absl/strings/numbers.h:150:65: error: ‘value’ was not declared in this scope
150 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
| ^~~~~
/usr/local/include/absl/strings/numbers.h:151:26: error: expected primary-expression before ‘int’
151 | int base);
| ^~~
/usr/local/include/absl/strings/numbers.h:151:34: error: expression list treated as compound expression in initializer [-fpermissive]
151 | int base);
| ^
/usr/local/include/absl/strings/numbers.h:202:50: error: ‘string_view’ is not a member of ‘absl’
202 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:202:73: error: expected primary-expression before ‘*’ token
202 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
| ^
/usr/local/include/absl/strings/numbers.h:202:75: error: ‘out’ was not declared in this scope
202 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
| ^~~
/usr/local/include/absl/strings/numbers.h:203:44: error: expected primary-expression before ‘int’
203 | int base) {
| ^~~
/usr/local/include/absl/strings/numbers.h:203:52: error: expression list treated as compound expression in initializer [-fpermissive]
203 | int base) {
| ^
/usr/local/include/absl/strings/numbers.h:203:53: error: expected ‘;’ before ‘{’ token
203 | int base) {
| ^~
| ;
/usr/local/include/absl/strings/numbers.h:271:27: error: redefinition of ‘template<class int_type> bool absl::SimpleAtoi’
271 | 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:271:44: error: ‘string_view’ is not a member of ‘absl’
271 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:271:69: error: expected primary-expression before ‘*’ token
271 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
| ^
/usr/local/include/absl/strings/numbers.h:271:71: error: ‘out’ was not declared in this scope
271 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* 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:57: error: expected primary-expression before ‘*’ token
276 | absl::int128* out) {
| ^
/usr/local/include/absl/strings/numbers.h:276:59: error: ‘out’ was not declared in this scope
276 | absl::int128* out) {
| ^~~
/usr/local/include/absl/strings/numbers.h:280:51: error: ‘bool absl::SimpleAtoi’ redeclared as different kind of entity
280 | 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:280:51: error: ‘string_view’ is not a member of ‘absl’
280 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:281:58: error: expected primary-expression before ‘*’ token
281 | absl::uint128* out) {
| ^
/usr/local/include/absl/strings/numbers.h:281:60: error: ‘out’ was not declared in this scope
281 | absl::uint128* out) {
| ^~~
/usr/local/include/absl/strings/numbers.h:286:27: error: redefinition of ‘template<class int_type> bool absl::SimpleHexAtoi’
286 | 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:286:47: error: ‘string_view’ is not a member of ‘absl’
286 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:286:72: error: expected primary-expression before ‘*’ token
286 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
| ^
/usr/local/include/absl/strings/numbers.h:286:74: error: ‘out’ was not declared in this scope
286 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* 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:60: error: expected primary-expression before ‘*’ token
291 | absl::int128* out) {
| ^
/usr/local/include/absl/strings/numbers.h:291:62: error: ‘out’ was not declared in this scope
291 | absl::int128* out) {
| ^~~
/usr/local/include/absl/strings/numbers.h:295:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
295 | 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:295:54: error: ‘string_view’ is not a member of ‘absl’
295 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
| ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:296:61: error: expected primary-expression before ‘*’ token
296 | absl::uint128* out) {
| ^
/usr/local/include/absl/strings/numbers.h:296:63: error: ‘out’ was not declared in this scope
296 | absl::uint128* out) {
| ^~~
In file included from ....../protobuf/src/google/protobuf/any_lite.cc:33:
/usr/local/include/absl/strings/str_cat.h:121:15: error: ‘string_view’ has not been declared
121 | void Append(string_view v);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:123:24: error: ‘string_view’ has not been declared
123 | bool PutPaddedString(string_view v, int width, int precision, bool left);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:126:58: error: ‘absl::string_view’ has not been declared
126 | friend void AbslFormatFlush(StringifySink* sink, absl::string_view v) {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:131:10: error: ‘string_view’ does not name a type
131 | friend string_view ExtractStringification(StringifySink& sink, const T& v);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:138:1: error: ‘string_view’ does not name a type
138 | string_view ExtractStringification(StringifySink& sink, const T& v) {
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:329:29: error: expected ‘)’ before ‘pc’
329 | AlphaNum(absl::string_view pc) : piece_(pc) {} // NOLINT(runtime/explicit)
| ~ ^~~
| )
/usr/local/include/absl/strings/str_cat.h:349:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
349 | absl::string_view::size_type size() const { return piece_.size(); }
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:351:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
351 | absl::string_view Piece() const { return piece_; }
| ^~~~~~~~~~~
/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 piece_;
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(int)’:
/usr/local/include/absl/strings/str_cat.h:290:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
290 | : 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:294:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
294 | : 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:298:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
298 | : 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:302:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
302 | : 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:306:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
306 | : 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:310:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
310 | : 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:315:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
315 | : 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:317:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
317 | : 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:325:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
325 | : 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:328:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
328 | : piece_(NullSafeStringView(c_str)) {} // NOLINT(runtime/explicit)
| ^~~~~~
/usr/local/include/absl/strings/str_cat.h:328:16: error: ‘NullSafeStringView’ was not declared in this scope
328 | : piece_(NullSafeStringView(c_str)) {} // NOLINT(runtime/explicit)
| ^~~~~~~~~~~~~~~~~~
/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:336:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
336 | : piece_(strings_internal::ExtractStringification(sink, v)) {}
| ^~~~~~
/usr/local/include/absl/strings/str_cat.h:336:34: error: ‘ExtractStringification’ is not a member of ‘absl::strings_internal’
336 | : 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:341:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
341 | : 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:350:37: error: ‘piece_’ was not declared in this scope
350 | 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:408:51: error: ‘string_view’ is not a member of ‘absl’
408 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:408:51: error: ‘string_view’ is not a member of ‘absl’
/usr/local/include/absl/strings/str_cat.h:408:62: error: template argument 1 is invalid
408 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
| ^
/usr/local/include/absl/strings/str_cat.h:410:47: error: ‘string_view’ is not a member of ‘absl’
410 | std::initializer_list<absl::string_view> pieces);
| ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:410:47: error: ‘string_view’ is not a member of ‘absl’
/usr/local/include/absl/strings/str_cat.h:410:58: error: template argument 1 is invalid
410 | 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:417:34: error: ‘const class absl::AlphaNum’ has no member named ‘size’
417 | 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:432:10: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
432 | {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:21: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
432 | {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:32: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
432 | {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:43: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
432 | {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:54: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
432 | {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:433:43: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
433 | static_cast<const AlphaNum&>(args).Piece()...});
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:431:37: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’
431 | return strings_internal::CatPieces(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
| |
| <brace-enclosed initializer list>
432 | {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
433 | static_cast<const AlphaNum&>(args).Piece()...});
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:408:64: note: initializing argument 1 of ‘std::string absl::strings_internal::CatPieces(int)’
408 | 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:477:16: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
477 | dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:477:27: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
477 | dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
| ^~~~~
/usr/local/include/absl/strings/str_cat.h:477:38: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
477 | dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
......
Seems to be a compatibility issue of protobuf and abseil ???
We have not made a release of protobuf that uses abseil yet. The main branch has a dependency on abseil and can use it.
Is there a work-around for this?
We have not made a release of protobuf that uses abseil yet. The main branch has a dependency on abseil and can use it.
In the official release v23.2, for protobuf_ABSL_PROVIDER, there are ONLY 2 options:
- module
- package
Which one to choose and build protobuf? It looks to me: no matter it's a module, or it's package, protobuf is ALWAYS based on abseil, isn't it?
Please define the minimum required abseil version in the CMakeLists.txt
, I had libabsl-dev
installed on my ubuntu 22.04 machine but it seems the version is too old for protobuf (cmake complains about absl::absl_check
not existing)
If abseil build with -std=c++17 (default since GCC 11), then protobuf and python module need build with c++17 too. sed -i 's/c++14/c++17/g' python/setup.py
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment.
This issue is labeled inactive
because the last activity was over 90 days ago.
The documentation still doesn't mention which versions of abseil are supported.
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment.
This issue is labeled inactive
because the last activity was over 90 days ago.
Documentation hasn't been update, e.g.: https://github.com/protocolbuffers/protobuf/blob/main/src/README.md#c-protobuf---unix
Thanks, Maximilian, for keeping this open.
Independent of the doc update needs, @jiapei100, the errors that you experienced appear to be that you're building with -std=c++14
and using a version of absl that dropped support for c++14.
Slight correction. Abseil has not dropped support for C++14. Very likely you are compiling in an interesting mixed configuration.
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment.
This issue is labeled inactive
because the last activity was over 90 days ago. This issue will be closed and archived after 14 additional days without activity.
Still relevant