protocol buffer and abseil

18 views
Skip to first unread message

Graham Walsh

unread,
Jul 20, 2024, 9:16:52 AM7/20/24
to Abseil.io
Hi,

I cannot get the link order right for a protocol buffer project. 

 g++ -I../protobuf/third_party/abseil-cpp -I../protobuf/src/     ./my_protoc_plugin.cc -o my_protoc_plugin     -L/home/gwalsh/protobuf/build/lib -L/home/gwalsh/protobuf/build/third_party/abseil-cpp     -lprotobuf -lprotoc -labsl_base -labsl_strings -labsl_flags_internal     -labsl_time  -labsl_hash -labsl_cord -labsl_synchronization     -ldl -lpthread

This generates an abundance of link errors (below)|

Chasing these down goes nowhere. I need to know whats the link order for abseil. Lets say I wanted to link against EVERY libabseil*.a static lib. What is the correct order? 

I wish google protocol buffers wasnt build with abseil. Nothing but issues. 

/usr/bin/ld: /tmp/cc2TXM55.o: in function `absl::lts_20240116::container_internal::EmptyGroup()':
my_protoc_plugin.cc:(.text._ZN4absl12lts_2024011618container_internal10EmptyGroupEv[_ZN4absl12lts_2024011618container_internal10EmptyGroupEv]+0xb): undefined reference to `absl::lts_20240116::container_internal::kEmptyGroup'
/usr/bin/ld: /tmp/cc2TXM55.o: in function `absl::lts_20240116::container_internal::AssertIsFull(absl::lts_20240116::container_internal::ctrl_t const*, unsigned char, unsigned char const*, char const*)':
my_protoc_plugin.cc:(.text._ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc[_ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc]+0x70): undefined reference to `absl::lts_20240116::raw_log_internal::RawLog(absl::lts_20240116::LogSeverity, char const*, int, char const*, ...)'
/usr/bin/ld: my_protoc_plugin.cc:(.text._ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc[_ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc]+0xdf): undefined reference to `absl::lts_20240116::raw_log_internal::RawLog(absl::lts_20240116::LogSeverity, char const*, int, char const*, ...)'
/usr/bin/ld: my_protoc_plugin.cc:(.text._ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc[_ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc]+0x157): undefined reference to `absl::lts_20240116::raw_log_internal::RawLog(absl::lts_20240116::LogSeverity, char const*, int, char const*, ...)'
/usr/bin/ld: my_protoc_plugin.cc:(.text._ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc[_ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc]+0x1cf): undefined reference to `absl::lts_20240116::raw_log_internal::RawLog(absl::lts_20240116::LogSeverity, char const*, int, char const*, ...)'
/usr/bin/ld: my_protoc_plugin.cc:(.text._ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc[_ZN4absl12lts_2024011618container_internal12AssertIsFullEPKNS1_6ctrl_tEhPKhPKc]+0x243): undefined reference to `absl::lts_20240116::raw_log_internal::RawLog(absl::lts_20240116::LogSeverity, char const*, int, char const*, ...)'
/usr/bin/ld: /tmp/cc2TXM55.o:my_protoc_plugin.cc:(.text._ZN4absl12lts_2024011618container_internal26AssertIsValidForComparisonEPKNS1_6ctrl_tEhPKh[_ZN4absl12lts_2024011618container_internal26AssertIsValidForComparisonEPKNS1_6ctrl_tEhPKh]+0xb9): more undefined references to `absl::lts_20240116::raw_log_in
Reply all
Reply to author
Forward
0 new messages