How to find abseil executing protobuf ?

147 views
Skip to first unread message

priya_cast_23

unread,
Jan 22, 2024, 12:03:27 PMJan 22
to Abseil.io
Is there someone able to find abseil libraries in protobuf25.2 ?

Any help is valid
here is the procedure.

git clone --recursive https://github.com/protocolbuffers/protobuf.git protobuf-25.4
cd protobuf-25.4

    cmake -Dprotobuf_BUILD_TESTS=OFF -DABSL_BUILD_TESTING=OFF -DABSL_USE_GOOGLETEST_HEAD=OFF -DABSL_PROPAGATE_CXX_STD=ON -DCMAKE_CXX_STANDARD=17 .
     cmake --build . --parallel 10
     sudo cmake --install .


sample.proto

syntax = "proto3";

message MyMessage {
  int32 id = 1;
  string name = 2;
}


protoc -I=. --cpp_out=. sample.proto
main.cpp


#include "sample.pb.h"
#include <iostream>

int main() {
  MyMessage message;
  message.set_id(123);
  message.set_name("Hello, Protobuf!");

  std::cout << "ID: " << message.id() << ", Name: " << message.name() << std::endl;

  return 0;
}
g++ -std=c++17 -o abseil_test abseil_test.cpp -I/usr/local/include/absl -L/usr/local/lib -labsl_strings -labsl_time -labsl_flags -labsl_raw_logging_internal -labsl_cord  -labsl_log_internal_message -labsl_log_internal_check_op


g++ -std=c++17 -o abseil_test abseil_test.cpp -I/usr/local/include/absl -L/usr/local/lib -labsl_strings -labsl_time -labsl_flags -labsl_raw_logging_internal -labsl_cord  -labsl_log_internal_message -labsl_log_internal_check_op
/usr/bin/ld: /usr/local/lib/libabsl_time.a(duration.cc.o): warning: relocation against `_ZN4absl12lts_2023080211kuint128maxE' in read-only section `.text'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `main':
abseil_test.cpp:(.text+0x32e): undefined reference to `absl::lts_20230802::ParseCommandLine(int, char**)'
/usr/bin/ld: /tmp/ccCDBNbn.o:(.data.rel+0x0): undefined reference to `vtable for absl::lts_20230802::flags_internal::FlagImpl'
/usr/bin/ld: /tmp/ccCDBNbn.o:(.data.rel+0x60): undefined reference to `vtable for absl::lts_20230802::flags_internal::FlagImpl'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `absl::lts_20230802::flags_internal::FlagRegistrar<int, true>::FlagRegistrar(absl::lts_20230802::flags_internal::Flag<int>&, char const*)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal13FlagRegistrarIiLb1EEC2ERNS1_4FlagIiEEPKc[_ZN4absl12lts_2023080214flags_internal13FlagRegistrarIiLb1EEC5ERNS1_4FlagIiEEPKc]+0x38): undefined reference to `absl::lts_20230802::flags_internal::RegisterCommandLineFlag(absl::lts_20230802::CommandLineFlag&, char const*)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > absl::lts_20230802::UnparseFlag<int>(int const&)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080211UnparseFlagIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_[_ZN4absl12lts_2023080211UnparseFlagIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_]+0x33): undefined reference to `absl::lts_20230802::flags_internal::Unparse[abi:cxx11](int)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `bool absl::lts_20230802::flags_internal::InvokeParseFlag<int>(std::basic_string_view<char, std::char_traits<char> >, int*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal15InvokeParseFlagIiEEbSt17basic_string_viewIcSt11char_traitsIcEEPT_PNSt7__cxx1112basic_stringIcS5_SaIcEEE[_ZN4absl12lts_2023080214flags_internal15InvokeParseFlagIiEEbSt17basic_string_viewIcSt11char_traitsIcEEPT_PNSt7__cxx1112basic_stringIcS5_SaIcEEE]+0x42): undefined reference to `absl::lts_20230802::flags_internal::AbslParseFlag(std::basic_string_view<char, std::char_traits<char> >, int*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `absl::lts_20230802::flags_internal::Flag<int>::Set(int const&)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi[_ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi]+0x32): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::AssertValidType(void const*, std::type_info const* (*)()) const'
/usr/bin/ld: abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi[_ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi]+0x45): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::Write(void const*)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `absl::lts_20230802::flags_internal::Flag<int>::Get() const':
abseil_test.cpp:(.text._ZNK4absl12lts_2023080214flags_internal4FlagIiE3GetEv[_ZNK4absl12lts_2023080214flags_internal4FlagIiE3GetEv]+0x49): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::AssertValidType(void const*, std::type_info const* (*)()) const'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `void absl::lts_20230802::flags_internal::FlagImpl::Read<int, 0>(int*) const':
abseil_test.cpp:(.text._ZNK4absl12lts_2023080214flags_internal8FlagImpl4ReadIiLi0EEEvPT_[_ZNK4absl12lts_2023080214flags_internal8FlagImpl4ReadIiLi0EEEvPT_]+0x2b): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::ReadOneWord() const'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(duration.cc.o): in function `absl::lts_20230802::(anonymous namespace)::SafeMultiply<absl::lts_20230802::uint128>::operator()(absl::lts_20230802::uint128, absl::lts_20230802::uint128) const':
duration.cc:(.text+0x42c3): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: duration.cc:(.text+0x42ca): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: duration.cc:(.text+0x42f3): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: duration.cc:(.text+0x42fa): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::FormatTime[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >, absl::lts_20230802::Time, absl::lts_20230802::TimeZone)':
format.cc:(.text+0x3de): undefined reference to `absl::lts_20230802::time_internal::cctz::detail::format(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1l> > > const&, std::chrono::duration<long, std::ratio<1l, 1000000000000000l> > const&, absl::lts_20230802::time_internal::cctz::time_zone const&)'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::ParseTime(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, absl::lts_20230802::TimeZone, absl::lts_20230802::Time*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
format.cc:(.text+0x8e7): undefined reference to `absl::lts_20230802::time_internal::cctz::detail::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, absl::lts_20230802::time_internal::cctz::time_zone const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1l> > >*, std::chrono::duration<long, std::ratio<1l, 1000000000000000l> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::UTCTimeZone()':
format.cc:(.text._ZN4absl12lts_2023080211UTCTimeZoneEv[_ZN4absl12lts_2023080211UTCTimeZoneEv]+0x1c): undefined reference to `absl::lts_20230802::time_internal::cctz::utc_time_zone()'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::LocalTimeZone()':
format.cc:(.text._ZN4absl12lts_2023080213LocalTimeZoneEv[_ZN4absl12lts_2023080213LocalTimeZoneEv]+0x1c): undefined reference to `absl::lts_20230802::time_internal::cctz::local_time_zone()'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
Is there someone able to find abseil libraries in protobuf25.2 ?

Any help is valid
here is the procedure.

git clone --recursive https://github.com/protocolbuffers/protobuf.git protobuf-25.4
cd protobuf-25.4

    cmake -Dprotobuf_BUILD_TESTS=OFF -DABSL_BUILD_TESTING=OFF -DABSL_USE_GOOGLETEST_HEAD=OFF -DABSL_PROPAGATE_CXX_STD=ON -DCMAKE_CXX_STANDARD=17 .
     cmake --build . --parallel 10
     sudo cmake --install .


sample.proto

syntax = "proto3";

message MyMessage {
  int32 id = 1;
  string name = 2;
}


protoc -I=. --cpp_out=. sample.proto
main.cpp


#include "sample.pb.h"
#include <iostream>

int main() {
  MyMessage message;
  message.set_id(123);
  message.set_name("Hello, Protobuf!");

  std::cout << "ID: " << message.id() << ", Name: " << message.name() << std::endl;

  return 0;
}
g++ -std=c++17 -o abseil_test abseil_test.cpp -I/usr/local/include/absl -L/usr/local/lib -labsl_strings -labsl_time -labsl_flags -labsl_raw_logging_internal -labsl_cord  -labsl_log_internal_message -labsl_log_internal_check_op


g++ -std=c++17 -o abseil_test abseil_test.cpp -I/usr/local/include/absl -L/usr/local/lib -labsl_strings -labsl_time -labsl_flags -labsl_raw_logging_internal -labsl_cord  -labsl_log_internal_message -labsl_log_internal_check_op
/usr/bin/ld: /usr/local/lib/libabsl_time.a(duration.cc.o): warning: relocation against `_ZN4absl12lts_2023080211kuint128maxE' in read-only section `.text'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `main':
abseil_test.cpp:(.text+0x32e): undefined reference to `absl::lts_20230802::ParseCommandLine(int, char**)'
/usr/bin/ld: /tmp/ccCDBNbn.o:(.data.rel+0x0): undefined reference to `vtable for absl::lts_20230802::flags_internal::FlagImpl'
/usr/bin/ld: /tmp/ccCDBNbn.o:(.data.rel+0x60): undefined reference to `vtable for absl::lts_20230802::flags_internal::FlagImpl'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `absl::lts_20230802::flags_internal::FlagRegistrar<int, true>::FlagRegistrar(absl::lts_20230802::flags_internal::Flag<int>&, char const*)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal13FlagRegistrarIiLb1EEC2ERNS1_4FlagIiEEPKc[_ZN4absl12lts_2023080214flags_internal13FlagRegistrarIiLb1EEC5ERNS1_4FlagIiEEPKc]+0x38): undefined reference to `absl::lts_20230802::flags_internal::RegisterCommandLineFlag(absl::lts_20230802::CommandLineFlag&, char const*)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > absl::lts_20230802::UnparseFlag<int>(int const&)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080211UnparseFlagIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_[_ZN4absl12lts_2023080211UnparseFlagIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_]+0x33): undefined reference to `absl::lts_20230802::flags_internal::Unparse[abi:cxx11](int)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `bool absl::lts_20230802::flags_internal::InvokeParseFlag<int>(std::basic_string_view<char, std::char_traits<char> >, int*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal15InvokeParseFlagIiEEbSt17basic_string_viewIcSt11char_traitsIcEEPT_PNSt7__cxx1112basic_stringIcS5_SaIcEEE[_ZN4absl12lts_2023080214flags_internal15InvokeParseFlagIiEEbSt17basic_string_viewIcSt11char_traitsIcEEPT_PNSt7__cxx1112basic_stringIcS5_SaIcEEE]+0x42): undefined reference to `absl::lts_20230802::flags_internal::AbslParseFlag(std::basic_string_view<char, std::char_traits<char> >, int*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `absl::lts_20230802::flags_internal::Flag<int>::Set(int const&)':
abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi[_ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi]+0x32): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::AssertValidType(void const*, std::type_info const* (*)()) const'
/usr/bin/ld: abseil_test.cpp:(.text._ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi[_ZN4absl12lts_2023080214flags_internal4FlagIiE3SetERKi]+0x45): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::Write(void const*)'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `absl::lts_20230802::flags_internal::Flag<int>::Get() const':
abseil_test.cpp:(.text._ZNK4absl12lts_2023080214flags_internal4FlagIiE3GetEv[_ZNK4absl12lts_2023080214flags_internal4FlagIiE3GetEv]+0x49): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::AssertValidType(void const*, std::type_info const* (*)()) const'
/usr/bin/ld: /tmp/ccCDBNbn.o: in function `void absl::lts_20230802::flags_internal::FlagImpl::Read<int, 0>(int*) const':
abseil_test.cpp:(.text._ZNK4absl12lts_2023080214flags_internal8FlagImpl4ReadIiLi0EEEvPT_[_ZNK4absl12lts_2023080214flags_internal8FlagImpl4ReadIiLi0EEEvPT_]+0x2b): undefined reference to `absl::lts_20230802::flags_internal::FlagImpl::ReadOneWord() const'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(duration.cc.o): in function `absl::lts_20230802::(anonymous namespace)::SafeMultiply<absl::lts_20230802::uint128>::operator()(absl::lts_20230802::uint128, absl::lts_20230802::uint128) const':
duration.cc:(.text+0x42c3): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: duration.cc:(.text+0x42ca): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: duration.cc:(.text+0x42f3): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: duration.cc:(.text+0x42fa): undefined reference to `absl::lts_20230802::kuint128max'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::FormatTime[abi:cxx11](std::basic_string_view<char, std::char_traits<char> >, absl::lts_20230802::Time, absl::lts_20230802::TimeZone)':
format.cc:(.text+0x3de): undefined reference to `absl::lts_20230802::time_internal::cctz::detail::format(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1l> > > const&, std::chrono::duration<long, std::ratio<1l, 1000000000000000l> > const&, absl::lts_20230802::time_internal::cctz::time_zone const&)'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::ParseTime(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, absl::lts_20230802::TimeZone, absl::lts_20230802::Time*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
format.cc:(.text+0x8e7): undefined reference to `absl::lts_20230802::time_internal::cctz::detail::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, absl::lts_20230802::time_internal::cctz::time_zone const&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1l> > >*, std::chrono::duration<long, std::ratio<1l, 1000000000000000l> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::UTCTimeZone()':
format.cc:(.text._ZN4absl12lts_2023080211UTCTimeZoneEv[_ZN4absl12lts_2023080211UTCTimeZoneEv]+0x1c): undefined reference to `absl::lts_20230802::time_internal::cctz::utc_time_zone()'
/usr/bin/ld: /usr/local/lib/libabsl_time.a(format.cc.o): in function `absl::lts_20230802::LocalTimeZone()':
format.cc:(.text._ZN4absl12lts_2023080213LocalTimeZoneEv[_ZN4absl12lts_2023080213LocalTimeZoneEv]+0x1c): undefined reference to `absl::lts_20230802::time_internal::cctz::local_time_zone()'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status

Paul Wankadia

unread,
Jan 22, 2024, 12:18:24 PMJan 22
to priya...@gmail.com, abse...@googlegroups.com
On Tue, Jan 23, 2024 at 4:03 AM priya_cast_23 <priya...@gmail.com> wrote:

Is there someone able to find abseil libraries in protobuf25.2 ?
[…]
g++ -std=c++17 -o abseil_test abseil_test.cpp -I/usr/local/include/absl -L/usr/local/lib -labsl_strings -labsl_time -labsl_flags -labsl_raw_logging_internal -labsl_cord  -labsl_log_internal_message -labsl_log_internal_check_op

I suspect that invoking pkg-config --cflags --libs protobuf (or similar) might be necessary in order to specify all of the dependencies correctly.

Reply all
Reply to author
Forward
0 new messages