protocolbuffers / protobuf

Protocol Buffers - Google's data interchange format
http://protobuf.dev
Other
65.11k stars 15.43k forks source link

undefined reference to `std::allocator<absl::lts_20230802::string_view>::allocator()' #17482

Open JiachengLiang opened 1 month ago

JiachengLiang commented 1 month ago

protobuf version: 25.1

abseil-cpp version: 20230802.1

gcc version: 7.3

problem I successfully compiled libprotoc.so and all the .so files of abseil-cpp that compiling protoc depends on. But when linking them to generate protoc, I encountered the following problems: undefined reference to `std::allocator\::allocator()'

Has anyone encountered such a problem? Or do you have any solution ideas you can share?

JiachengLiang commented 1 month ago
/usr/local/bin/g++ --sysroot=/ -Wall -g -pipe -fsigned-char -O2 -fno-ipa-icf -fno-omit-frame-pointer -Wno-error -Wno-shadow -Wno-float-equal -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-function -Wno-undef -Wno-format-nonliteral -MMD -fno-common  -fno-strict-aliasing  -fvisibility=default -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wdate-time  -O3 -DNDEBUG -Wall -g -Wl,-z,relro,-z,noexecstack,-z,now,--build-id=none CMakeFiles/protoc.dir/src/google/protobuf/compiler/main.cc.o -o protoc-25.1.0  libprotoc.so.25.1.0 libprotobuf.so third_party/abseil-cpp/absl/log/libabsl_die_if_null.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_initialize.so.2308.0.0 third_party/abseil-cpp/absl/status/libabsl_statusor.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_check_op.so.2308.0.0 third_party/abseil-cpp/absl/debugging/libabsl_leak_check.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_conditions.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_message.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_nullguard.so.2308.0.0 third_party/abseil-cpp/absl/debugging/libabsl_examine_stack.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_format.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_proto.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_log_sink_set.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_sink.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_entry.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_internal.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_marshalling.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_reflection.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_config.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_program_name.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_private_handle_accessor.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_commandlineflag.so.2308.0.0 third_party/abseil-cpp/absl/flags/libabsl_flags_commandlineflag_internal.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_globals.so.2308.0.0 third_party/abseil-cpp/absl/log/libabsl_log_internal_globals.so.2308.0.0 third_party/abseil-cpp/absl/container/libabsl_raw_hash_set.so.2308.0.0 third_party/abseil-cpp/absl/hash/libabsl_hash.so.2308.0.0 third_party/abseil-cpp/absl/hash/libabsl_city.so.2308.0.0 third_party/abseil-cpp/absl/hash/libabsl_low_level_hash.so.2308.0.0 third_party/abseil-cpp/absl/container/libabsl_hashtablez_sampler.so.2308.0.0 third_party/abseil-cpp/absl/status/libabsl_status.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_cord.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_cordz_info.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_cord_internal.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_cordz_functions.so.2308.0.0 third_party/abseil-cpp/absl/profiling/libabsl_exponential_biased.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_cordz_handle.so.2308.0.0 third_party/abseil-cpp/absl/crc/libabsl_crc_cord_state.so.2308.0.0 third_party/abseil-cpp/absl/crc/libabsl_crc32c.so.2308.0.0 third_party/abseil-cpp/absl/crc/libabsl_crc_internal.so.2308.0.0 third_party/abseil-cpp/absl/crc/libabsl_crc_cpu_detect.so.2308.0.0 third_party/abseil-cpp/absl/types/libabsl_bad_optional_access.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_str_format_internal.so.2308.0.0 third_party/abseil-cpp/absl/base/libabsl_strerror.so.2308.0.0 third_party/abseil-cpp/absl/synchronization/libabsl_synchronization.so.2308.0.0 third_party/abseil-cpp/absl/debugging/libabsl_stacktrace.so.2308.0.0 third_party/abseil-cpp/absl/debugging/libabsl_symbolize.so.2308.0.0 third_party/abseil-cpp/absl/debugging/libabsl_debugging_internal.so.2308.0.0 third_party/abseil-cpp/absl/debugging/libabsl_demangle_internal.so.2308.0.0 third_party/abseil-cpp/absl/synchronization/libabsl_graphcycles_internal.so.2308.0.0 third_party/abseil-cpp/absl/synchronization/libabsl_kernel_timeout_internal.so.2308.0.0 third_party/abseil-cpp/absl/base/libabsl_malloc_internal.so.2308.0.0 third_party/abseil-cpp/absl/time/libabsl_time.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_strings.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_string_view.so.2308.0.0 third_party/abseil-cpp/absl/base/libabsl_throw_delegate.so.2308.0.0 third_party/abseil-cpp/absl/strings/libabsl_strings_internal.so.2308.0.0 third_party/abseil-cpp/absl/base/libabsl_base.so.2308.0.0 third_party/abseil-cpp/absl/base/libabsl_spinlock_wait.so.2308.0.0 third_party/abseil-cpp/absl/numeric/libabsl_int128.so.2308.0.0 third_party/abseil-cpp/absl/time/libabsl_civil_time.so.2308.0.0 third_party/abseil-cpp/absl/time/libabsl_time_zone.so.2308.0.0 third_party/abseil-cpp/absl/types/libabsl_bad_variant_access.so.2308.0.0 third_party/abseil-cpp/absl/base/libabsl_raw_logging_internal.so.2308.0.0 third_party/abseil-cpp/absl/base/libabsl_log_severity.so.2308.0.0
/usr/bin/ld: libprotoc.so.25.1.0: undefined reference to `std::allocator<absl::lts_20230802::string_view>::allocator()'
collect2: error: ld returned 1 exit status
CMakeFiles/protoc.dir/build.make:163: recipe for target 'protoc-25.1.0' failed