I'm trying to statically link the dependencies to my project using vcpkg but for some reason when linking target_link_libraries(main PRIVATE GameNetworkingSockets::static) it ends up linking with the OS absl shared objects:
$ ldd build/main
linux-vdso.so.1 (0x00007f825ddca000)
libprotobuf.so.35.1.0 => /usr/lib/libprotobuf.so.35.1.0 (0x00007f825d000000)
libutf8_validity.so.35.1.0 => /usr/lib/libutf8_validity.so.35.1.0 (0x00007f825dd8c000)
libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007f825c800000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f825c400000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f825dc85000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f825dc50000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f825c000000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f825ddcc000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f825d5c4000)
libabsl_die_if_null.so.2605.0.0 => /usr/lib/libabsl_die_if_null.so.2605.0.0 (0x00007f825dc49000)
libabsl_statusor.so.2605.0.0 => /usr/lib/libabsl_statusor.so.2605.0.0 (0x00007f825d5be000)
libabsl_log_internal_check_op.so.2605.0.0 => /usr/lib/libabsl_log_internal_check_op.so.2605.0.0 (0x00007f825d5b4000)
libabsl_log_internal_conditions.so.2605.0.0 => /usr/lib/libabsl_log_internal_conditions.so.2605.0.0 (0x00007f825d5af000)
libabsl_log_internal_message.so.2605.0.0 => /usr/lib/libabsl_log_internal_message.so.2605.0.0 (0x00007f825d5a0000)
libabsl_log_internal_nullguard.so.2605.0.0 => /usr/lib/libabsl_log_internal_nullguard.so.2605.0.0 (0x00007f825d59b000)
libabsl_raw_hash_set.so.2605.0.0 => /usr/lib/libabsl_raw_hash_set.so.2605.0.0 (0x00007f825d592000)
libabsl_status.so.2605.0.0 => /usr/lib/libabsl_status.so.2605.0.0 (0x00007f825d586000)
libabsl_cord.so.2605.0.0 => /usr/lib/libabsl_cord.so.2605.0.0 (0x00007f825d56d000)
libabsl_cordz_info.so.2605.0.0 => /usr/lib/libabsl_cordz_info.so.2605.0.0 (0x00007f825d564000)
libabsl_cord_internal.so.2605.0.0 => /usr/lib/libabsl_cord_internal.so.2605.0.0 (0x00007f825d556000)
libabsl_hash.so.2605.0.0 => /usr/lib/libabsl_hash.so.2605.0.0 (0x00007f825d551000)
libabsl_synchronization.so.2605.0.0 => /usr/lib/libabsl_synchronization.so.2605.0.0 (0x00007f825d53f000)
libabsl_time.so.2605.0.0 => /usr/lib/libabsl_time.so.2605.0.0 (0x00007f825d52b000)
libabsl_time_zone.so.2605.0.0 => /usr/lib/libabsl_time_zone.so.2605.0.0 (0x00007f825cfe5000)
libabsl_str_format_internal.so.2605.0.0 => /usr/lib/libabsl_str_format_internal.so.2605.0.0 (0x00007f825cfc6000)
libabsl_strings.so.2605.0.0 => /usr/lib/libabsl_strings.so.2605.0.0 (0x00007f825cfa0000)
libabsl_spinlock_wait.so.2605.0.0 => /usr/lib/libabsl_spinlock_wait.so.2605.0.0 (0x00007f825d524000)
libabsl_throw_delegate.so.2605.0.0 => /usr/lib/libabsl_throw_delegate.so.2605.0.0 (0x00007f825cf9a000)
libabsl_raw_logging_internal.so.2605.0.0 => /usr/lib/libabsl_raw_logging_internal.so.2605.0.0 (0x00007f825d51f000)
libbrotlienc.so.1 => /usr/lib/libbrotlienc.so.1 (0x00007f825c306000)
libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007f825cf88000)
libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007f825be9f000)
libabsl_base.so.2605.0.0 => /usr/lib/libabsl_base.so.2605.0.0 (0x00007f825cf82000)
libabsl_leak_check.so.2605.0.0 => /usr/lib/libabsl_leak_check.so.2605.0.0 (0x00007f825cf7d000)
libabsl_examine_stack.so.2605.0.0 => /usr/lib/libabsl_examine_stack.so.2605.0.0 (0x00007f825cf76000)
libabsl_log_internal_format.so.2605.0.0 => /usr/lib/libabsl_log_internal_format.so.2605.0.0 (0x00007f825cf71000)
libabsl_log_internal_structured_proto.so.2605.0.0 => /usr/lib/libabsl_log_internal_structured_proto.so.2605.0.0 (0x00007f825cf6c000)
libabsl_strerror.so.2605.0.0 => /usr/lib/libabsl_strerror.so.2605.0.0 (0x00007f825cf67000)
libabsl_log_internal_log_sink_set.so.2605.0.0 => /usr/lib/libabsl_log_internal_log_sink_set.so.2605.0.0 (0x00007f825cf61000)
libabsl_log_internal_globals.so.2605.0.0 => /usr/lib/libabsl_log_internal_globals.so.2605.0.0 (0x00007f825cf5a000)
libabsl_log_globals.so.2605.0.0 => /usr/lib/libabsl_log_globals.so.2605.0.0 (0x00007f825cf54000)
libabsl_log_internal_proto.so.2605.0.0 => /usr/lib/libabsl_log_internal_proto.so.2605.0.0 (0x00007f825cf4f000)
libabsl_strings_internal.so.2605.0.0 => /usr/lib/libabsl_strings_internal.so.2605.0.0 (0x00007f825cf49000)
libabsl_hashtablez_sampler.so.2605.0.0 => /usr/lib/libabsl_hashtablez_sampler.so.2605.0.0 (0x00007f825cf43000)
libabsl_crc_cord_state.so.2605.0.0 => /usr/lib/libabsl_crc_cord_state.so.2605.0.0 (0x00007f825cf3a000)
libabsl_cordz_functions.so.2605.0.0 => /usr/lib/libabsl_cordz_functions.so.2605.0.0 (0x00007f825cf35000)
libabsl_cordz_handle.so.2605.0.0 => /usr/lib/libabsl_cordz_handle.so.2605.0.0 (0x00007f825cf30000)
libabsl_stacktrace.so.2605.0.0 => /usr/lib/libabsl_stacktrace.so.2605.0.0 (0x00007f825cf2b000)
libabsl_city.so.2605.0.0 => /usr/lib/libabsl_city.so.2605.0.0 (0x00007f825cf26000)
libabsl_kernel_timeout_internal.so.2605.0.0 => /usr/lib/libabsl_kernel_timeout_internal.so.2605.0.0 (0x00007f825cf1f000)
libabsl_tracing_internal.so.2605.0.0 => /usr/lib/libabsl_tracing_internal.so.2605.0.0 (0x00007f825cf1a000)
libabsl_malloc_internal.so.2605.0.0 => /usr/lib/libabsl_malloc_internal.so.2605.0.0 (0x00007f825cf13000)
libabsl_int128.so.2605.0.0 => /usr/lib/libabsl_int128.so.2605.0.0 (0x00007f825cf0b000)
libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007f825cee8000)
libabsl_symbolize.so.2605.0.0 => /usr/lib/libabsl_symbolize.so.2605.0.0 (0x00007f825cede000)
libabsl_log_sink.so.2605.0.0 => /usr/lib/libabsl_log_sink.so.2605.0.0 (0x00007f825ced9000)
libabsl_crc32c.so.2605.0.0 => /usr/lib/libabsl_crc32c.so.2605.0.0 (0x00007f825ced2000)
libabsl_exponential_biased.so.2605.0.0 => /usr/lib/libabsl_exponential_biased.so.2605.0.0 (0x00007f825cecd000)
libabsl_debugging_internal.so.2605.0.0 => /usr/lib/libabsl_debugging_internal.so.2605.0.0 (0x00007f825cec4000)
libabsl_demangle_internal.so.2605.0.0 => /usr/lib/libabsl_demangle_internal.so.2605.0.0 (0x00007f825ceb7000)
libabsl_crc_internal.so.2605.0.0 => /usr/lib/libabsl_crc_internal.so.2605.0.0 (0x00007f825cead000)
libabsl_crc_cpu_detect.so.2605.0.0 => /usr/lib/libabsl_crc_cpu_detect.so.2605.0.0 (0x00007f825cea8000)
libabsl_demangle_rust.so.2605.0.0 => /usr/lib/libabsl_demangle_rust.so.2605.0.0 (0x00007f825cea0000)
libabsl_decode_rust_punycode.so.2605.0.0 => /usr/lib/libabsl_decode_rust_punycode.so.2605.0.0 (0x00007f825c7f9000)
libabsl_utf8_for_code_point.so.2605.0.0 => /usr/lib/libabsl_utf8_for_code_point.so.2605.0.0 (0x00007f825c7f4000)
For the record I am also including abseil for some container types in my project, but if I remove GameNetworkingSockets abseil is statically linked. Even when I link protobuf::libprotobuf directly I don't have the same issue, this only seems to happen when using the GNS vcpkg package.
CMakeLists.txt:
// project ...
set(CMAKE_CXX_STANDARD 23)
find_package(Stb REQUIRED)
find_package(fmt REQUIRED)
find_package(glm REQUIRED)
find_package(spdlog REQUIRED)
find_package(imgui REQUIRED)
find_package(absl REQUIRED)
find_package(flatbuffers REQUIRED)
find_package(SDL3 REQUIRED)
find_package(GameNetworkingSockets REQUIRED)
find_package(EnTT REQUIRED)
// add_executable ...
target_link_libraries(main PRIVATE Threads::Threads)
target_link_libraries(main PRIVATE fmt::fmt)
target_link_libraries(main PRIVATE SDL3::SDL3)
target_link_libraries(main PRIVATE absl::flat_hash_map)
target_link_libraries(main PRIVATE flatbuffers::flatbuffers)
target_link_libraries(main PRIVATE glm::glm)
target_link_libraries(main PRIVATE imgui::imgui)
target_link_libraries(main PRIVATE spdlog::spdlog)
target_link_libraries(main PRIVATE GameNetworkingSockets::static)
I'm trying to statically link the dependencies to my project using vcpkg but for some reason when linking
target_link_libraries(main PRIVATE GameNetworkingSockets::static)it ends up linking with the OS absl shared objects:For the record I am also including abseil for some container types in my project, but if I remove GameNetworkingSockets abseil is statically linked. Even when I link protobuf::libprotobuf directly I don't have the same issue, this only seems to happen when using the GNS vcpkg package.
CMakeLists.txt: