debian bookworm - gRPC v.51.1-3+b1 error during application linking

42 views
Skip to first unread message

Jacky Bek

unread,
Aug 3, 2026, 12:48:40 PM (7 days ago) Aug 3
to grpc.io
I installed grpc using 
apt-get install -y libgrpc++-dev
apt-get install -y libgrpc-dev
apt-get install -y protobuf-compiler-grpc

I then build my c++ application and tried to link with gRPC.
I get these errors:

/usr/bin/ld: /usr/local/lib/libabsl_spinlock_wait.a(spinlock_wait.cc.o): invalid string offset 1918975009 >= 907 for section `.strtab'
/usr/bin/ld: /usr/local/lib/libabsl_spinlock_wait.a: error adding symbols: no more archived files

This is how i build my application:

maxAdapter: $(OBJ)
        @echo "\033[0;33m Linking BIN executable file : $@ \033[0m"
        $(CPP) $(GRPCObj) $(LDIR1) $(LDIR2) $(LDIR3) $(LDIR4) $(LDIR5) $(LDIR6) $(LDIR7) $(LDIR8) $(LDIR9) $(LDIR10) -o $@ $^ $(LDFLAGS) $(LDIR1) -l:libldap.a -l:liblber.a \
        -l:libfreeradius-client.a -l:liblely-coapp.a -l:liblely-io2.a -l:liblely-ev.a -l:liblely-co.a -l:liblely-can.a -l:liblely-util.a -l:liblely-libc.a -l:liblely-tap.a \
        -l:liblely-util.a -l:libEIPScannerS.a -L/usr/local/lib/ -l:libmongoose.a  \
        $(PKG_CFLAGS) -L/usr/local/src/bluez_inc/binc/ -l:libBinc.a $(LIBS) $(GRPCLib)

where:
GRPCObj= maxEngineTalker.o maxEngineComms.pb.o maxEngineComms.grpc.pb.o

GRPCLib= \
-L/usr/local/lib \
-l:libabsl_base.a -l:libabsl_city.a -l:libabsl_civil_time.a -l:libabsl_cord.a -l:libabsl_cord_internal.a -l:libabsl_cordz_functions.a \
-l:libabsl_cordz_handle.a -l:libabsl_cordz_info.a -l:libabsl_cordz_sample_token.a -l:libabsl_crc32c.a -l:libabsl_crc_cord_state.a \
-l:libabsl_crc_cpu_detect.a -l:libabsl_crc_internal.a \
-l:libabsl_debugging_internal.a -l:libabsl_decode_rust_punycode.a -l:libabsl_demangle_internal.a -l:libabsl_demangle_rust.a \
-l:libabsl_die_if_null.a \
-l:libabsl_examine_stack.a -l:libabsl_exponential_biased.a -l:libabsl_failure_signal_handler.a -l:libabsl_flags_commandlineflag.a \
-l:libabsl_flags_commandlineflag_internal.a -l:libabsl_flags_config.a -l:libabsl_flags_internal.a -l:libabsl_flags_marshalling.a \
-l:libabsl_flags_parse.a \
-l:libabsl_flags_private_handle_accessor.a -l:libabsl_flags_program_name.a -l:libabsl_flags_reflection.a -l:libabsl_flags_usage.a \
-l:libabsl_flags_usage_internal.a -l:libabsl_graphcycles_internal.a -l:libabsl_hash.a -l:libabsl_hashtablez_sampler.a -l:libabsl_int128.a \
-l:libabsl_kernel_timeout_internal.a -l:libabsl_leak_check.a -l:libabsl_log_flags.a -l:libabsl_log_globals.a \
-l:libabsl_log_initialize.a -l:libabsl_log_internal_check_op.a -l:libabsl_log_internal_conditions.a -l:libabsl_log_internal_fnmatch.a \
-l:libabsl_log_internal_format.a -l:libabsl_log_internal_globals.a -l:libabsl_log_internal_log_sink_set.a -l:libabsl_log_internal_message.a \
-l:libabsl_log_internal_nullguard.a -l:libabsl_log_internal_proto.a -l:libabsl_log_internal_structured_proto.a -l:libabsl_log_severity.a \
-l:libabsl_log_sink.a -l:libabsl_low_level_hash.a -l:libabsl_malloc_internal.a -l:libabsl_periodic_sampler.a -l:libabsl_poison.a \
-l:libabsl_random_distributions.a -l:libabsl_random_internal_distribution_test_util.a -l:libabsl_random_internal_entropy_pool.a \
-l:libabsl_random_internal_platform.a -l:libabsl_random_internal_randen.a -l:libabsl_random_internal_randen_hwaes.a \
-l:libabsl_random_internal_randen_slow.a -l:libabsl_random_internal_seed_material.a -l:libabsl_random_seed_gen_exception.a \
-l:libabsl_random_seed_sequences.a -l:libabsl_raw_hash_set.a -l:libabsl_raw_logging_internal.a -l:libabsl_scoped_set_env.a \
-l:libabsl_spinlock_wait.a -l:libabsl_stacktrace.a -l:libabsl_status.a -l:libabsl_statusor.a -l:libabsl_strerror.a \
-l:libabsl_str_format_internal.a \
-l:libabsl_strings.a -l:libabsl_strings_internal.a -l:libabsl_string_view.a -l:libabsl_symbolize.a -l:libabsl_synchronization.a \
-l:libabsl_throw_delegate.a -l:libabsl_time.a -l:libabsl_time_zone.a -l:libabsl_tracing_internal.a -l:libabsl_utf8_for_code_point.a \
-l:libabsl_vlog_config_internal.a -l:libaddress_sorting.a \
-l:libcares.a -l:libgpr.a -l:libgrpc++.a -l:libgrpc.a -l:libgrpc++_alts.a -l:libgrpc_authorization_provider.a -l:libgrpc++_error_details.a \
-l:libgrpc_plugin_support.a -l:libgrpcpp_channelz.a -l:libgrpc++_reflection.a -l:libgrpc++_unsecure.a -l:libgrpc_unsecure.a \
-l:libprotobuf.a -l:libprotobuf-lite.a -l:libprotoc.a -l:libre2.a \
-l:libupb.a -l:libupb_base_lib.a -l:libupb_descriptor_lib.a -l:libupb_hash_lib.a -l:libupb_json_lib.a -l:libupb_lex_lib.a -l:libupb_mem_lib.a \
-l:libupb_message_lib.a -l:libupb_mini_descriptor_lib.a -l:libupb_mini_table_lib.a -l:libupb_reflection_lib.a -l:libupb_textformat_lib.a \
-l:libupb_wire_lib.a -l:libutf8_range.a -l:libutf8_range_lib.a -l:libutf8_validity.a \
-lprotobuf $(pkg-config --libs grpc++ protobuf) 

Is there a newer version of gRPC-C++ on available for download for Debian bookworm?
Thanks.

Jacky


Peter Schow

unread,
Aug 3, 2026, 4:22:25 PM (7 days ago) Aug 3
to Jacky Bek, grpc.io
Hi Jacky,

For C++ on modern Linux distributions, It really is much easier just to build GRPC yourself than to fight dependency problems like you're doing.

https://grpc.io/docs/languages/cpp/quickstart/
Reply all
Reply to author
Forward
0 new messages