[package] grpc/1.65.0, protobuf/5.27.0 : Fails with options 'abseil/*:shared=True'
Description
When gRPC is built with a shared-library version of abseil (on Windows), it appears that it fetches and uses a protobuf binary not build with a shared-library abseil.
The build eventually fails with numerous link errors, the first of which is:
abseil_dll.lib(abseil_dll.dll) : error LNK2005: "public: static class absl::lts_20240116::hash_internal::MixingHashStat
e __cdecl absl::lts_20240116::hash_internal::MixingHashState::combine_contiguous(class absl::lts_20240116::hash_interna
l::MixingHashState,unsigned char const *,unsigned __int64)" (?combine_contiguous@MixingHashState@hash_internal@lts_2024
0116@absl@@SA?AV1234@V1234@PEBE_K@Z) already defined in libprotobuf.lib(descriptor.obj) [path...ConanHome\p\b\grpce4d6f131e1578\b\build\grpc_csharp_plugin.vcxproj]
The following manual steps work around the issue:
- Fetch
abseilwith the shared-library option - Install
protobufand force the build (i.e. conan install --requires=protobuf/5.27.0 --build=protobuf/5.27.0 --profile:host ... ) so the protobuf in the cache was built against the shared-library abseil - Install
grpc
Package and Environment Details
- Package Name/Version: grpc/1.65.0 and protobuf/5.27.0
- Operating System+version: Windows 11
- Compiler+version: Visual Studio 2019, 19.29.30154 (compiler.version=192)
- Conan version: Conan version 2.8.0
- Python version: Python 3.7.4
Conan profile
Build profile:
[settings]
os=Windows
compiler=msvc
compiler.runtime=dynamic
# first three digits of _MSC_VER, 192 for VS 2016-2019
compiler.version=192
compiler.cppstd=17
build_type=Release
compiler.runtime_type=Release
arch=x86_64
# If the options are not the same for _dependant_ libraries, the incompatible base
# libraries tend to be found and used by conan.
[options]
abseil/*:shared=True
grpc/*:secure=True
protobuf/*:shared=False
Host profile:
[settings]
os=Windows
compiler=msvc
compiler.runtime=dynamic
# first three digits of _MSC_VER, 192 for VS 2016-2019
compiler.version=192
compiler.cppstd=17
build_type=Release
compiler.runtime_type=Release
arch=x86_64
[options]
abseil/*:shared=True
grpc/*:secure=True
protobuf/*:shared=False
Steps to reproduce
conan install "--requires=grpc/1.65.0@#e9067573e87d3c3efc634ce0d727d7eb" "--build=grpc/1.65.0@#e9067573e87d3c3efc634ce0d727d7eb" --profile:host host_profile.txt --profile:build build_profile.txt
Logs
Log is selected portions only, all output is probably not relevant.
Click to expand log
======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=17
compiler.runtime=dynamic
compiler.runtime_type=Release
compiler.version=192
os=Windows
[options]
abseil/*:shared=True
boost/*:shared=True
boost/*:without_log=True
boost/*:without_stacktrace=True
boost/*:without_type_erasure=True
grpc/*:secure=True
openssl/*:shared=True
Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=17
compiler.runtime=dynamic
compiler.runtime_type=Release
compiler.version=192
os=Windows
[options]
abseil/*:shared=True
grpc/*:secure=True
protobuf/*:shared=False
======== Computing dependency graph ========
Graph root
cli
Requirements
abseil/20240116.2#54f81a20ccd26a6558e18d57059847e2 - Cache
c-ares/1.33.1#99a35827eebc984885f60362660ea232 - Cache
grpc/1.65.0#e9067573e87d3c3efc634ce0d727d7eb - Cache
openssl/1.1.1w#8bcd54a23717978bd94ab320e377ea93 - Cache
protobuf/5.27.0#ccce9aa25886556c6d66c77b2be4d806 - Cache
re2/20230301#4482314b6488e5d71e9944f5bedb730d - Cache
zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Cache
Build requirements
abseil/20240116.2#54f81a20ccd26a6558e18d57059847e2 - Cache
nasm/2.15.05#058c93b2214a49ca1cfe9f8f26205568 - Cache
protobuf/5.27.0#ccce9aa25886556c6d66c77b2be4d806 - Cache
strawberryperl/5.32.1.1#8f83d05a60363a422f9033e52d106b47 - Cache
zlib/1.3.1#f52e03ae3d251dec704634230cd806a2 - Cache
Resolved version ranges
c-ares/[>=1.19.1 <2]: c-ares/1.33.1
openssl/[>=1.1 <4]: openssl/1.1.1w
zlib/[>=1.2.11 <2]: zlib/1.3.1
======== Computing necessary packages ========
abseil/20240116.2: Main binary package 'a60be37676823331e6c4ba6bb1dd4938e81fb17a' missing
abseil/20240116.2: Checking 2 compatible configurations
abseil/20240116.2: Found compatible package '18ff13b488eb6ad8b3de7e4298eee0e6b9445eb2': compiler.cppstd=14
re2/20230301: Main binary package '3d0c3e6a0cd870340e1bf684e393bf3a496f22ed' missing
re2/20230301: Checking 2 compatible configurations
re2/20230301: Found compatible package 'fc89aa49e93bcd637519a084d5e03531cd818cab': compiler.cppstd=14
protobuf/5.27.0: Main binary package '35dbcd9886fc85b5675bbb06ea830085cd100f97' missing
protobuf/5.27.0: Checking 2 compatible configurations
protobuf/5.27.0: Found compatible package '86f42f196182773c27b3bd36514d50184ba17fdf': compiler.cppstd=14
grpc/1.65.0: Forced build from source
Requirements
abseil/20240116.2#54f81a20ccd26a6558e18d57059847e2:18ff13b488eb6ad8b3de7e4298eee0e6b9445eb2#4de31e2174293e3c28c177102d2fb25e - Cache
c-ares/1.33.1#99a35827eebc984885f60362660ea232:ab0271e66c032798a15a6278934903a31510d3d8#81139b9909dae037b12132b612f03d2a - Cache
grpc/1.65.0#e9067573e87d3c3efc634ce0d727d7eb:339cda98e1bc42747bf60f343bbcb84276e9a380 - Build
openssl/1.1.1w#8bcd54a23717978bd94ab320e377ea93:e89ca6746c4f30111911a8a029b20219591413cc#9faaf21a51cc19c11e164ec1ef1262ff - Cache
protobuf/5.27.0#ccce9aa25886556c6d66c77b2be4d806:86f42f196182773c27b3bd36514d50184ba17fdf#f517cf00ccd4d2999d7840131a66598b - Cache
re2/20230301#4482314b6488e5d71e9944f5bedb730d:fc89aa49e93bcd637519a084d5e03531cd818cab#e44d52f25da29b5662cd8ee0cefd2f68 - Cache
zlib/1.3.1#f52e03ae3d251dec704634230cd806a2:41ad450120fdab2266b1185a967d298f7ae52595#6513303f73b00a3c69312b4bf7cdcd9e - Cache
Build requirements
abseil/20240116.2#54f81a20ccd26a6558e18d57059847e2:18ff13b488eb6ad8b3de7e4298eee0e6b9445eb2#4de31e2174293e3c28c177102d2fb25e - Cache
protobuf/5.27.0#ccce9aa25886556c6d66c77b2be4d806:86f42f196182773c27b3bd36514d50184ba17fdf#f517cf00ccd4d2999d7840131a66598b - Cache
Skipped binaries
nasm/2.15.05, strawberryperl/5.32.1.1, zlib/1.3.1
======== Installing packages ========
abseil/20240116.2: Already installed! (1 of 7)
c-ares/1.33.1: Already installed! (2 of 7)
re2/20230301: Already installed! (3 of 7)
zlib/1.3.1: Already installed! (4 of 7)
openssl/1.1.1w: Already installed! (5 of 7)
protobuf/5.27.0: Already installed! (6 of 7)
-------- Installing package grpc/1.65.0 (7 of 7) --------
grpc/1.65.0: Building from source
grpc/1.65.0: Package grpc/1.65.0:339cda98e1bc42747bf60f343bbcb84276e9a380
grpc/1.65.0: Copying sources to build folder
grpc/1.65.0: Building your package in C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b
grpc/1.65.0: Calling generate()
grpc/1.65.0: Generators folder: C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\generators
grpc/1.65.0: CMakeToolchain generated: conan_toolchain.cmake
grpc/1.65.0: CMakeToolchain generated: C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\generators\CMakePresets.json
grpc/1.65.0: CMakeToolchain generated: C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\src\CMakeUserPresets.json
grpc/1.65.0: CMakeDeps necessary find_package() and targets for your CMakeLists.txt
find_package(protobuf)
find_package(absl)
find_package(c-ares)
find_package(OpenSSL)
find_package(re2)
find_package(ZLIB)
target_link_libraries(... protobuf::protobuf abseil::abseil c-ares::cares openssl::openssl re2::re2 ZLIB::ZLIB)
grpc/1.65.0: Generating aggregated env files
grpc/1.65.0: Generated aggregated env files: ['conanbuild.bat', 'conanrun.bat']
grpc/1.65.0: Calling build()
grpc/1.65.0: apply_conandata_patches(): No patches defined in conandata
grpc/1.65.0: Running CMake.configure()
grpc/1.65.0: RUN: cmake -G "Visual Studio 16 2019" -DCMAKE_TOOLCHAIN_FILE="generators/conan_toolchain.cmake" -DCMAKE_INSTALL_PREFIX="X://ConanHome/p/b/grpce06250e8d935c/p" -DCMAKE_PROJECT_grpc_INCLUDE="C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\src\conan_cmake_project_include.cmake" -DgRPC_BUILD_CODEGEN="ON" -DgRPC_BUILD_CSHARP_EXT="OFF" -DgRPC_BUILD_TESTS="OFF" -DgRPC_INSTALL="ON" -DgRPC_INSTALL_SHAREDIR="res/grpc" -DgRPC_ZLIB_PROVIDER="package" -DgRPC_CARES_PROVIDER="package" -DgRPC_RE2_PROVIDER="package" -DgRPC_SSL_PROVIDER="package" -DgRPC_PROTOBUF_PROVIDER="package" -DgRPC_ABSL_PROVIDER="package" -DgRPC_BUILD_GRPC_CPP_PLUGIN="ON" -DgRPC_BUILD_GRPC_CSHARP_PLUGIN="ON" -DgRPC_BUILD_GRPC_NODE_PLUGIN="ON" -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN="ON" -DgRPC_BUILD_GRPC_PHP_PLUGIN="ON" -DgRPC_BUILD_GRPC_PYTHON_PLUGIN="ON" -DgRPC_BUILD_GRPC_RUBY_PLUGIN="ON" -DgRPC_DOWNLOAD_ARCHIVES="OFF" -DCMAKE_POLICY_DEFAULT_CMP0091="NEW" "X://ConanHome/p/b/grpce06250e8d935c/b/src"
-- Using Conan toolchain: X://ConanHome/p/b/grpce06250e8d935c/b/build/generators/conan_toolchain.cmake
-- Conan toolchain: CMAKE_GENERATOR_TOOLSET=v142
-- Conan toolchain: Setting CMAKE_MSVC_RUNTIME_LIBRARY=$<$<CONFIG:Release>:MultiThreadedDLL>
-- Conan toolchain: C++ Standard 17 with extensions OFF
-- Conan toolchain: Setting BUILD_SHARED_LIBS = OFF
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.22631.
-- The C compiler identification is MSVC 19.29.30154.0
-- The CXX compiler identification is MSVC 19.29.30154.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Conan: Component target declared 'absl::abseil_dll'
-- Conan: Component target declared 'absl::atomic_hook'
-- Conan: Component target declared 'absl::log_severity'
-- Conan: Component target declared 'absl::raw_logging_internal'
-- Conan: Component target declared 'absl::spinlock_wait'
-- Conan: Component target declared 'absl::config'
-- Conan: Component target declared 'absl::dynamic_annotations'
-- Conan: Component target declared 'absl::core_headers'
-- Conan: Component target declared 'absl::malloc_internal'
-- Conan: Component target declared 'absl::base_internal'
-- Conan: Component target declared 'absl::base'
-- Conan: Component target declared 'absl::throw_delegate'
-- Conan: Component target declared 'absl::pretty_function'
-- Conan: Component target declared 'absl::endian'
-- Conan: Component target declared 'absl::scoped_set_env'
-- Conan: Component target declared 'absl::strerror'
-- Conan: Component target declared 'absl::algorithm'
-- Conan: Component target declared 'absl::algorithm_container'
-- Conan: Component target declared 'absl::btree'
-- Conan: Component target declared 'absl::compressed_tuple'
-- Conan: Component target declared 'absl::fixed_array'
-- Conan: Component target declared 'absl::inlined_vector_internal'
-- Conan: Component target declared 'absl::inlined_vector'
-- Conan: Component target declared 'absl::flat_hash_map'
-- Conan: Component target declared 'absl::flat_hash_set'
-- Conan: Component target declared 'absl::node_hash_map'
-- Conan: Component target declared 'absl::node_hash_set'
-- Conan: Component target declared 'absl::container_memory'
-- Conan: Component target declared 'absl::hash_function_defaults'
-- Conan: Component target declared 'absl::hash_policy_traits'
-- Conan: Component target declared 'absl::hashtablez_sampler'
-- Conan: Component target declared 'absl::hashtable_debug'
-- Conan: Component target declared 'absl::hashtable_debug_hooks'
-- Conan: Component target declared 'absl::node_slot_policy'
-- Conan: Component target declared 'absl::raw_hash_map'
-- Conan: Component target declared 'absl::container_common'
-- Conan: Component target declared 'absl::raw_hash_set'
-- Conan: Component target declared 'absl::layout'
-- Conan: Component target declared 'absl::crc_cpu_detect'
-- Conan: Component target declared 'absl::crc_internal'
-- Conan: Component target declared 'absl::crc32c'
-- Conan: Component target declared 'absl::non_temporal_arm_intrinsics'
-- Conan: Component target declared 'absl::non_temporal_memcpy'
-- Conan: Component target declared 'absl::crc_cord_state'
-- Conan: Component target declared 'absl::stacktrace'
-- Conan: Component target declared 'absl::symbolize'
-- Conan: Component target declared 'absl::examine_stack'
-- Conan: Component target declared 'absl::failure_signal_handler'
-- Conan: Component target declared 'absl::debugging_internal'
-- Conan: Component target declared 'absl::demangle_internal'
-- Conan: Component target declared 'absl::leak_check'
-- Conan: Component target declared 'absl::debugging'
-- Conan: Component target declared 'absl::flags_marshalling'
-- Conan: Component target declared 'absl::any_invocable'
-- Conan: Component target declared 'absl::bind_front'
-- Conan: Component target declared 'absl::function_ref'
-- Conan: Component target declared 'absl::hash'
-- Conan: Component target declared 'absl::city'
-- Conan: Component target declared 'absl::low_level_hash'
-- Conan: Component target declared 'absl::log_internal_check_impl'
-- Conan: Component target declared 'absl::log_internal_check_op'
-- Conan: Component target declared 'absl::log_internal_conditions'
-- Conan: Component target declared 'absl::log_internal_config'
-- Conan: Component target declared 'absl::log_internal_format'
-- Conan: Component target declared 'absl::log_internal_globals'
-- Conan: Component target declared 'absl::log_internal_log_impl'
-- Conan: Component target declared 'absl::log_internal_proto'
-- Conan: Component target declared 'absl::log_internal_message'
-- Conan: Component target declared 'absl::log_internal_log_sink_set'
-- Conan: Component target declared 'absl::log_internal_nullguard'
-- Conan: Component target declared 'absl::log_internal_nullstream'
-- Conan: Component target declared 'absl::log_internal_strip'
-- Conan: Component target declared 'absl::log_internal_voidify'
-- Conan: Component target declared 'absl::log_internal_append_truncated'
-- Conan: Component target declared 'absl::absl_check'
-- Conan: Component target declared 'absl::absl_log'
-- Conan: Component target declared 'absl::check'
-- Conan: Component target declared 'absl::die_if_null'
-- Conan: Component target declared 'absl::log_globals'
-- Conan: Component target declared 'absl::log_initialize'
-- Conan: Component target declared 'absl::log'
-- Conan: Component target declared 'absl::log_entry'
-- Conan: Component target declared 'absl::log_sink'
-- Conan: Component target declared 'absl::log_sink_registry'
-- Conan: Component target declared 'absl::log_streamer'
-- Conan: Component target declared 'absl::log_internal_structured'
-- Conan: Component target declared 'absl::log_structured'
-- Conan: Component target declared 'absl::log_internal_fnmatch'
-- Conan: Component target declared 'absl::memory'
-- Conan: Component target declared 'absl::type_traits'
-- Conan: Component target declared 'absl::meta'
-- Conan: Component target declared 'absl::bits'
-- Conan: Component target declared 'absl::int128'
-- Conan: Component target declared 'absl::numeric'
-- Conan: Component target declared 'absl::sample_recorder'
-- Conan: Component target declared 'absl::exponential_biased'
-- Conan: Component target declared 'absl::periodic_sampler'
-- Conan: Component target declared 'absl::random_random'
-- Conan: Component target declared 'absl::random_bit_gen_ref'
-- Conan: Component target declared 'absl::random_distributions'
-- Conan: Component target declared 'absl::random_seed_gen_exception'
-- Conan: Component target declared 'absl::random_seed_sequences'
-- Conan: Component target declared 'absl::random_internal_traits'
-- Conan: Component target declared 'absl::random_internal_distribution_caller'
-- Conan: Component target declared 'absl::random_internal_fast_uniform_bits'
-- Conan: Component target declared 'absl::random_internal_seed_material'
-- Conan: Component target declared 'absl::random_internal_pool_urbg'
-- Conan: Component target declared 'absl::random_internal_salted_seed_seq'
-- Conan: Component target declared 'absl::random_internal_iostream_state_saver'
-- Conan: Component target declared 'absl::random_internal_generate_real'
-- Conan: Component target declared 'absl::random_internal_wide_multiply'
-- Conan: Component target declared 'absl::random_internal_fastmath'
-- Conan: Component target declared 'absl::random_internal_nonsecure_base'
-- Conan: Component target declared 'absl::random_internal_pcg_engine'
-- Conan: Component target declared 'absl::random_internal_randen_engine'
-- Conan: Component target declared 'absl::random_internal_platform'
-- Conan: Component target declared 'absl::random_internal_randen'
-- Conan: Component target declared 'absl::random_internal_randen_slow'
-- Conan: Component target declared 'absl::random_internal_randen_hwaes'
-- Conan: Component target declared 'absl::random_internal_randen_hwaes_impl'
-- Conan: Component target declared 'absl::random_internal_distribution_test_util'
-- Conan: Component target declared 'absl::random_internal_uniform_helper'
-- Conan: Component target declared 'absl::status'
-- Conan: Component target declared 'absl::statusor'
-- Conan: Component target declared 'absl::strings'
-- Conan: Component target declared 'absl::strings_internal'
-- Conan: Component target declared 'absl::str_format'
-- Conan: Component target declared 'absl::str_format_internal'
-- Conan: Component target declared 'absl::cord_internal'
-- Conan: Component target declared 'absl::cordz_functions'
-- Conan: Component target declared 'absl::cordz_handle'
-- Conan: Component target declared 'absl::cordz_info'
-- Conan: Component target declared 'absl::cordz_sample_token'
-- Conan: Component target declared 'absl::cord'
-- Conan: Component target declared 'absl::graphcycles_internal'
-- Conan: Component target declared 'absl::kernel_timeout_internal'
-- Conan: Component target declared 'absl::synchronization'
-- Conan: Component target declared 'absl::time'
-- Conan: Component target declared 'absl::civil_time'
-- Conan: Component target declared 'absl::time_zone'
-- Conan: Component target declared 'absl::any'
-- Conan: Component target declared 'absl::bad_any_cast'
-- Conan: Component target declared 'absl::bad_any_cast_impl'
-- Conan: Component target declared 'absl::span'
-- Conan: Component target declared 'absl::optional'
-- Conan: Component target declared 'absl::bad_optional_access'
-- Conan: Component target declared 'absl::bad_variant_access'
-- Conan: Component target declared 'absl::variant'
-- Conan: Component target declared 'absl::compare'
-- Conan: Component target declared 'absl::utility'
-- Conan: Component target declared 'absl::errno_saver'
-- Conan: Component target declared 'absl::no_destructor'
-- Conan: Component target declared 'absl::nullability'
-- Conan: Component target declared 'absl::fast_type_id'
-- Conan: Component target declared 'absl::prefetch'
-- Conan: Component target declared 'absl::cleanup_internal'
-- Conan: Component target declared 'absl::common_policy_traits'
-- Conan: Component target declared 'absl::flags_path_util'
-- Conan: Component target declared 'absl::overload'
-- Conan: Component target declared 'absl::numeric_representation'
-- Conan: Component target declared 'absl::has_ostream_operator'
-- Conan: Component target declared 'absl::cordz_update_tracker'
-- Conan: Component target declared 'absl::if_constexpr'
-- Conan: Component target declared 'absl::cleanup'
-- Conan: Component target declared 'absl::flags_program_name'
-- Conan: Component target declared 'absl::flags_commandlineflag_internal'
-- Conan: Component target declared 'absl::vlog_config_internal'
-- Conan: Component target declared 'absl::random_internal_mock_helpers'
-- Conan: Component target declared 'absl::string_view'
-- Conan: Component target declared 'absl::cordz_statistics'
-- Conan: Component target declared 'absl::cordz_update_scope'
-- Conan: Component target declared 'absl::flags_config'
-- Conan: Component target declared 'absl::flags_commandline
... output skipped ...
abseil_dll.lib(abseil_dll.dll) : error LNK2005: "public: static class absl::lts_20240116::hash_internal::MixingHashState __cdecl absl::lts_20240116::hash_internal::MixingHashState::combine_contiguous(class absl::lts_20240116::hash_internal::MixingHashState,unsigned char const *,unsigned __int64)" (?combine_contiguous@MixingHashState@hash_internal@lts_20240116@absl@@SA?AV1234@V1234@PEBE_K@Z) already defined in libprotobuf.lib(descriptor.obj) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(map.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(map_field.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(generated_message_reflection.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(extension_set.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(text_format.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(dynamic_message.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(descriptor.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(printer.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(generated_message_tctable_lite.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(message.obj) : error LNK2001: unresolved external symbol "private: static void const * const absl::lts_20240116::hash_internal::MixingHashState::kSeed" (?kSeed@MixingHashState@hash_internal@lts_20240116@absl@@0QEBXEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(extension_set.obj) : error LNK2001: unresolved external symbol "enum absl::lts_20240116::container_internal::ctrl_t const * const absl::lts_20240116::container_internal::kEmptyGroup" (?kEmptyGroup@container_internal@lts_20240116@absl@@3QBW4ctrl_t@123@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(text_format.obj) : error LNK2001: unresolved external symbol "enum absl::lts_20240116::container_internal::ctrl_t const * const absl::lts_20240116::container_internal::kEmptyGroup" (?kEmptyGroup@container_internal@lts_20240116@absl@@3QBW4ctrl_t@123@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(dynamic_message.obj) : error LNK2001: unresolved external symbol "enum absl::lts_20240116::container_internal::ctrl_t const * const absl::lts_20240116::container_internal::kEmptyGroup" (?kEmptyGroup@container_internal@lts_20240116@absl@@3QBW4ctrl_t@123@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(descriptor.obj) : error LNK2001: unresolved external symbol "enum absl::lts_20240116::container_internal::ctrl_t const * const absl::lts_20240116::container_internal::kEmptyGroup" (?kEmptyGroup@container_internal@lts_20240116@absl@@3QBW4ctrl_t@123@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(printer.obj) : error LNK2001: unresolved external symbol "enum absl::lts_20240116::container_internal::ctrl_t const * const absl::lts_20240116::container_internal::kEmptyGroup" (?kEmptyGroup@container_internal@lts_20240116@absl@@3QBW4ctrl_t@123@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(message.obj) : error LNK2001: unresolved external symbol "enum absl::lts_20240116::container_internal::ctrl_t const * const absl::lts_20240116::container_internal::kEmptyGroup" (?kEmptyGroup@container_internal@lts_20240116@absl@@3QBW4ctrl_t@123@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(generated_message_reflection.obj) : error LNK2001: unresolved external symbol "enum absl::lts_20240116::container_internal::ctrl_t const * const absl::lts_20240116::container_internal::kEmptyGroup" (?kEmptyGroup@container_internal@lts_20240116@absl@@3QBW4ctrl_t@123@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(descriptor.obj) : error LNK2019: unresolved external symbol "unsigned char const * const absl::lts_20240116::ascii_internal::kPropertyBits" (?kPropertyBits@ascii_internal@lts_20240116@absl@@3QBEB) referenced in function "void __cdecl absl::lts_20240116::StripAsciiWhitespace(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)" (?StripAsciiWhitespace@lts_20240116@absl@@YAXPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(printer.obj) : error LNK2001: unresolved external symbol "unsigned char const * const absl::lts_20240116::ascii_internal::kPropertyBits" (?kPropertyBits@ascii_internal@lts_20240116@absl@@3QBEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(io_win32.obj) : error LNK2001: unresolved external symbol "unsigned char const * const absl::lts_20240116::ascii_internal::kPropertyBits" (?kPropertyBits@ascii_internal@lts_20240116@absl@@3QBEB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(descriptor.obj) : error LNK2019: unresolved external symbol "char const * const absl::lts_20240116::ascii_internal::kToUpper" (?kToUpper@ascii_internal@lts_20240116@absl@@3QBDB) referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl google::protobuf::`anonymous namespace'::EnumValueToPascalCase(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?EnumValueToPascalCase@?A0xdc71b1f4@protobuf@google@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV45@@Z) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(descriptor.obj) : error LNK2019: unresolved external symbol "char const * const absl::lts_20240116::ascii_internal::kToLower" (?kToLower@ascii_internal@lts_20240116@absl@@3QBDB) referenced in function "private: void __cdecl google::protobuf::DescriptorBuilder::CheckEnumValueUniqueness(class google::protobuf::EnumDescriptorProto const &,class google::protobuf::EnumDescriptor const *)" (?CheckEnumValueUniqueness@DescriptorBuilder@protobuf@google@@AEAAXAEBVEnumDescriptorProto@23@PEBVEnumDescriptor@23@@Z) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(message_lite.obj) : error LNK2019: unresolved external symbol "char const * const absl::lts_20240116::numbers_internal::kHexTable" (?kHexTable@numbers_internal@lts_20240116@absl@@3QBDB) referenced in function "class absl::lts_20240116::string_view __cdecl absl::lts_20240116::strings_internal::ExtractStringification<struct absl::lts_20240116::Hex>(class absl::lts_20240116::strings_internal::StringifySink &,struct absl::lts_20240116::Hex const &)" (??$ExtractStringification@UHex@lts_20240116@absl@@@strings_internal@lts_20240116@absl@@YA?AVstring_view@12@AEAVStringifySink@012@AEBUHex@12@@Z) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(text_format.obj) : error LNK2001: unresolved external symbol "char const * const absl::lts_20240116::numbers_internal::kHexTable" (?kHexTable@numbers_internal@lts_20240116@absl@@3QBDB) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(common.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(text_format.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(reflection_ops.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(zero_copy_stream_impl.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(map_field.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(repeated_ptr_field.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(message.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(generated_message_reflection.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
libprotobuf.lib(wire_format.obj) : error LNK2001: unresolved external symbol "class std::array<char,7> const absl::lts_20240116::log_internal::kCharNull" (?kCharNull@log_internal@lts_20240116@absl@@3V?$array@D$06@std@@B) [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\Release\grpc_ruby_plugin.exe : fatal error LNK1120: 7 unresolved externals [C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build\grpc_ruby_plugin.vcxproj]
grpc/1.65.0: ERROR:
Package '339cda98e1bc42747bf60f343bbcb84276e9a380' build failed
grpc/1.65.0: WARN: Build folder C:\Users\gmcdorman\git\CRSB.Conan2-Build-ThirdParty\build\ConanHome\p\b\grpce06250e8d935c\b\build
ERROR: grpc/1.65.0: Error in build() method, line 243
cmake.build()
ConanException: Error 1 while executing
It also fails if the abseil library is forced to a shared version, as the abseil bin directory apparently isn't included in the path (grpc requires building with a tool in protobuf, which uses abseil and as a result must be able to find the shared library at build time).