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