-
Notifications
You must be signed in to change notification settings - Fork 15.9k
Description
What version of protobuf and what language are you using?
Version: 32.x C++
What operating system (Linux, Windows, ...) and version?
Ubuntu 24.04
What runtime / compiler are you using (e.g., python version or gcc version)
gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
What did you do?
Build absl libraries manually:
# abseil - needs to be an LTS version - 20250512.1
cd "${DEPENDENCIES_BASE_PATH}" || exit
git clone https://github.com/abseil/abseil-cpp.git "${DEPENDENCIES_BASE_PATH}/abseil-cpp/source"
cd abseil-cpp/source || exit
git clean -f -d
git fetch --tags
git checkout lts_2025_08_14
mkdir ../build
cd ../build || exit
cmake \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX="${DEPENDENCIES_BASE_PATH}/abseil-cpp/install" \
-DABSL_BUILD_TESTING=OFF \
-DABSL_USE_GOOGLETEST_HEAD=OFF \
../source
cmake --build . --target install
cd "${rootDir}" || exit
Build protobuf libraries manually
# protobuf - working
cd "${DEPENDENCIES_BASE_PATH}" || exit
git clone https://github.com/protocolbuffers/protobuf.git -b 32.x "${DEPENDENCIES_BASE_PATH}/protobuf/source"
cd protobuf/source || exit
git clean -f -d
mkdir ../build
cd ../build || exit
cmake \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX="${DEPENDENCIES_BASE_PATH}/protobuf/install" \
-Dabsl_DIR="${DEPENDENCIES_BASE_PATH}/abseil-cpp/install/lib/cmake/absl" \
-DZLIB_LIBRARY="${DEPENDENCIES_BASE_PATH}/zlib/install/lib/libz.a" \
-DZLIB_INCLUDE_DIR="${DEPENDENCIES_BASE_PATH}/zlib/install/include" \
-Dprotobuf_INSTALL=ON \
-Dprotobuf_BUILD_TESTS=OFF \
-Dprotobuf_BUILD_CONFORMANCE=OFF \
-Dprotobuf_BUILD_EXAMPLES=OFF \
-Dprotobuf_FORCE_FETCH_DEPENDENCIES=OFF \
-Dprotobuf_LOCAL_DEPENDENCIES_ONLY=OFF \
../source
cmake --build . --target install
cd "${rootDir}" || exit
Libraries are built ok
Next I built my messages.proto into messages.pb.cc.
Using cmake I tried to build a static messagespb lib and then link that into my main program, that failed. I got lots of absl undefined reference errors.
Then I tried this:
#
#add_library(messagespb STATIC
# src/proto/messages.pb.cc
#)
#target_include_directories(messagespb PUBLIC
# ${CMAKE_SOURCE_DIR}/_deps/protobuf/install/include
# ${CMAKE_SOURCE_DIR}/_deps/abseil-cpp/install/include
file(GLOB_RECURSE ABSL_LIBS ${CMAKE_SOURCE_DIR}/_deps/abseil-cpp/install/lib/*.a)
message("ABSL LIBS: ${ABSL_LIBS}")
#target_link_libraries(messagespb PUBLIC
# ${CMAKE_SOURCE_DIR}/_deps/protobuf/install/lib/libprotobuf.a
# ${ABSL_LIBS}
#)
add_executable(Server server_ws.cc src/proto/messages.pb.cc)
target_include_directories(Server PUBLIC
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/_deps/protobuf/install/include
${CMAKE_SOURCE_DIR}/_deps/abseil-cpp/install/include
)
target_link_libraries(Server PUBLIC
${CMAKE_SOURCE_DIR}/_deps/protobuf/install/lib/libprotobuf.a
${ABSL_LIBS}
)
and ended up with
/usr/bin/cmake --build /home/tshaw/Documents/uwebsockets-cmake/cmake-build-debug --target Server -j 6
[0/1] Re-running CMake...
ABSL LIBS: <-- truncated to avoid listing them all out -->
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: /home/tshaw/Documents/uwebsockets-cmake/cmake-build-debug
[2/3] Linking CXX executable Server
FAILED: Server
: && /usr/bin/c++ -g -Wl,--dependency-file=CMakeFiles/Server.dir/link.d CMakeFiles/Server.dir/server_ws.cc.o CMakeFiles/Server.dir/src/proto/messages.pb.cc.o -o Server -Wl,-rpath,/home/tshaw/Documents/uwebsockets-cmake/_deps/ImageMagick/install/lib:/home/tshaw/Documents/uwebsockets-cmake/_deps/lsquic/install/lib:/home/tshaw/Documents/uwebsockets-cmake/_deps/boringssl/install/lib /home/tshaw/Documents/uwebsockets-cmake/_deps/protobuf/install/lib/libprotobuf.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_base.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_city.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_civil_time.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cord.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cord_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_functions.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_handle.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_sample_token.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_crc32c.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_crc_cord_state.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_crc_cpu_detect.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_crc_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_debugging_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_decode_rust_punycode.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_demangle_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_demangle_rust.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_die_if_null.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_examine_stack.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_exponential_biased.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_failure_signal_handler.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_commandlineflag.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_commandlineflag_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_config.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_marshalling.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_parse.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_private_handle_accessor.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_program_name.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_reflection.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_usage.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_flags_usage_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_graphcycles_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_hash.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_hashtable_profiler.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_hashtablez_sampler.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_int128.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_kernel_timeout_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_leak_check.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_entry.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_flags.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_globals.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_initialize.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_check_op.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_conditions.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_fnmatch.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_format.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_globals.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_log_sink_set.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_message.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_nullguard.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_proto.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_structured_proto.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_severity.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_sink.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_malloc_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_periodic_sampler.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_poison.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_profile_builder.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_distributions.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_distribution_test_util.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_entropy_pool.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_platform.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_randen.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_randen_hwaes.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_randen_hwaes_impl.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_randen_slow.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_internal_seed_material.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_seed_gen_exception.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_random_seed_sequences.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_raw_hash_set.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_raw_logging_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_scoped_set_env.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_spinlock_wait.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_stacktrace.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_status.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_statusor.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_str_format_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_strerror.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_string_view.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_strings.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_strings_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_symbolize.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_synchronization.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_throw_delegate.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_time.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_time_zone.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_tracing_internal.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_utf8_for_code_point.a /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_vlog_config_internal.a libuSockets.a /home/tshaw/Documents/uwebsockets-cmake/_deps/lsquic/install/lib/liblsquic.so /home/tshaw/Documents/uwebsockets-cmake/_deps/boringssl/install/lib/libcrypto.so /home/tshaw/Documents/uwebsockets-cmake/_deps/boringssl/install/lib/libssl.so /home/tshaw/Documents/uwebsockets-cmake/_deps/zlib/install/lib/libz.a && :
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_conditions.a(conditions.cc.o): warning: relocation against `_ZN4absl12lts_2025081413base_internal10CycleClock19cycle_clock_source_E' in read-only section `.text._ZN4absl12lts_2025081413base_internal10CycleClock20LoadCycleClockSourceEv[_ZN4absl12lts_2025081413base_internal10CycleClock20LoadCycleClockSourceEv]'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/protobuf/install/lib/libprotobuf.a(generated_message_tctable_lite.cc.o): in function `utf8_range::IsStructurallyValid(std::basic_string_view<char, std::char_traits<char> >)':
generated_message_tctable_lite.cc:(.text._ZN10utf8_range19IsStructurallyValidESt17basic_string_viewIcSt11char_traitsIcEE[_ZN10utf8_range19IsStructurallyValidESt17basic_string_viewIcSt11char_traitsIcEE]+0x40): undefined reference to `utf8_range_IsValid'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/protobuf/install/lib/libprotobuf.a(parse_context.cc.o): in function `utf8_range::SpanStructurallyValid(std::basic_string_view<char, std::char_traits<char> >)':
parse_context.cc:(.text._ZN10utf8_range21SpanStructurallyValidESt17basic_string_viewIcSt11char_traitsIcEE[_ZN10utf8_range21SpanStructurallyValidESt17basic_string_viewIcSt11char_traitsIcEE]+0x40): undefined reference to `utf8_range_ValidPrefix'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::cord_internal::CordzInfo::Head(absl::lts_20250814::cord_internal::CordzSnapshot const&)':
cordz_info.cc:(.text+0x98a): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::DiagnosticsHandleIsSafeToInspect(absl::lts_20250814::cord_internal::CordzHandle const*) const'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::cord_internal::CordzInfo::Next(absl::lts_20250814::cord_internal::CordzSnapshot const&) const':
cordz_info.cc:(.text+0xac3): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::DiagnosticsHandleIsSafeToInspect(absl::lts_20250814::cord_internal::CordzHandle const*) const'
/usr/bin/ld: cordz_info.cc:(.text+0xaea): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::DiagnosticsHandleIsSafeToInspect(absl::lts_20250814::cord_internal::CordzHandle const*) const'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::cord_internal::CordzInfo::CordzInfo(absl::lts_20250814::cord_internal::CordRep*, absl::lts_20250814::cord_internal::CordzInfo const*, absl::lts_20250814::cord_internal::CordzUpdateTracker::MethodIdentifier, long)':
cordz_info.cc:(.text+0x10d1): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::~CordzHandle()'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::cord_internal::CordzInfo::~CordzInfo()':
cordz_info.cc:(.text+0x114d): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::~CordzHandle()'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::cord_internal::CordzInfo::Untrack()':
cordz_info.cc:(.text+0x14da): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::SafeToDelete() const'
/usr/bin/ld: cordz_info.cc:(.text+0x155b): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::Delete(absl::lts_20250814::cord_internal::CordzHandle*)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::base_internal::SpinLock::lock()':
cordz_info.cc:(.text._ZN4absl12lts_2025081413base_internal8SpinLock4lockEv[_ZN4absl12lts_2025081413base_internal8SpinLock4lockEv]+0x2b): undefined reference to `absl::lts_20250814::base_internal::SpinLock::SlowLock()'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::base_internal::SpinLock::unlock()':
cordz_info.cc:(.text._ZN4absl12lts_2025081413base_internal8SpinLock6unlockEv[_ZN4absl12lts_2025081413base_internal8SpinLock6unlockEv]+0xc1): undefined reference to `absl::lts_20250814::base_internal::SpinLock::SlowUnlock(unsigned int)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o): in function `absl::lts_20250814::cord_internal::CordzHandle::CordzHandle()':
cordz_info.cc:(.text._ZN4absl12lts_2025081413cord_internal11CordzHandleC2Ev[_ZN4absl12lts_2025081413cord_internal11CordzHandleC5Ev]+0x1d): undefined reference to `absl::lts_20250814::cord_internal::CordzHandle::CordzHandle(bool)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_cordz_info.a(cordz_info.cc.o):(.data.rel.ro._ZTIN4absl12lts_2025081413cord_internal9CordzInfoE[_ZTIN4absl12lts_2025081413cord_internal9CordzInfoE]+0x10): undefined reference to `typeinfo for absl::lts_20250814::cord_internal::CordzHandle'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_crc_cord_state.a(crc_cord_state.cc.o): in function `absl::lts_20250814::crc_internal::CrcCordState::Checksum() const':
crc_cord_state.cc:(.text+0x449): undefined reference to `absl::lts_20250814::RemoveCrc32cPrefix(absl::lts_20250814::crc32c_t, absl::lts_20250814::crc32c_t, unsigned long)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_crc_cord_state.a(crc_cord_state.cc.o): in function `absl::lts_20250814::crc_internal::CrcCordState::NormalizedPrefixCrcAtNthChunk(unsigned long) const':
crc_cord_state.cc:(.text+0x57d): undefined reference to `absl::lts_20250814::RemoveCrc32cPrefix(absl::lts_20250814::crc32c_t, absl::lts_20250814::crc32c_t, unsigned long)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_crc_cord_state.a(crc_cord_state.cc.o): in function `absl::lts_20250814::crc_internal::CrcCordState::Normalize()':
crc_cord_state.cc:(.text+0x6ab): undefined reference to `absl::lts_20250814::RemoveCrc32cPrefix(absl::lts_20250814::crc32c_t, absl::lts_20250814::crc32c_t, unsigned long)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_hash.a(hash.cc.o): in function `absl::lts_20250814::hash_internal::(anonymous namespace)::SplitAndCombineOn32Bit(unsigned char const*, unsigned long, unsigned long)':
hash.cc:(.text+0x706): undefined reference to `absl::lts_20250814::hash_internal::CityHash32(char const*, unsigned long)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_check_op.a(check_op.cc.o): in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >* absl::lts_20250814::IgnoreLeak<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':
check_op.cc:(.text._ZN4absl12lts_2025081410IgnoreLeakINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPT_S9_[_ZN4absl12lts_2025081410IgnoreLeakINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPT_S9_]+0x18): undefined reference to `absl::lts_20250814::DoIgnoreLeak(void const*)'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_conditions.a(conditions.cc.o): in function `absl::lts_20250814::base_internal::CycleClock::LoadCycleClockSource()':
conditions.cc:(.text._ZN4absl12lts_2025081413base_internal10CycleClock20LoadCycleClockSourceEv[_ZN4absl12lts_2025081413base_internal10CycleClock20LoadCycleClockSourceEv]+0x10): undefined reference to `absl::lts_20250814::base_internal::CycleClock::cycle_clock_source_'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_conditions.a(conditions.cc.o): in function `absl::lts_20250814::base_internal::CycleClock::Frequency()':
conditions.cc:(.text._ZN4absl12lts_2025081413base_internal10CycleClock9FrequencyEv[_ZN4absl12lts_2025081413base_internal10CycleClock9FrequencyEv]+0x9): undefined reference to `absl::lts_20250814::base_internal::UnscaledCycleClock::Frequency()'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_message.a(log_message.cc.o): in function `absl::lts_20250814::log_internal::LogMessage::LogMessageData::LogMessageData(char const*, int, absl::lts_20250814::LogSeverity, absl::lts_20250814::Time)':
log_message.cc:(.text+0x376): undefined reference to `absl::lts_20250814::ShouldPrependLogPrefix()'
/usr/bin/ld: log_message.cc:(.text+0x3b0): undefined reference to `absl::lts_20250814::base_internal::GetCachedTID()'
/usr/bin/ld: /home/tshaw/Documents/uwebsockets-cmake/_deps/abseil-cpp/install/lib/libabsl_log_internal_message.a(log_message.cc.o): in function `absl::lts_20250814::log_internal::LogMessage::LogMessageData::FinalizeEncodingAndFormat()':
log_message.cc:(.text+0x657): undefined reference to `absl::lts_20250814::log_internal::ThreadIsLoggingToLogSink()'
What did you expect to see
I was hoping to be able to create a library that has the protobuf de/encoding functionality
What did you see instead?
Linking errors to absl dispite the libs being linked
Im happy to make this work differently but I want to avoid using cmake to bring in the protobuf and absl projects. My ideal scenario is that I can create a library that I can use in other projects without having to use cmake to bring in protobuf into every project. I would think that is achieveable and reasonable.
Fingers crossed and thanks :)