My issue seems to be resolved by adding wsock32.lib ws2_32.lib to the 
linker. 

在2022年3月24日星期四 UTC+8 01:12:49<pixel...@gmail.com> 写道:

> Without more information on how you're building, we can't really help. 
> Please share with us an example project exhibiting the problem.
>
> On Tuesday, March 22, 2022 at 8:39:14 AM UTC-7 Parker Huang wrote:
>
>> Hi, have you solved your compile or link issue? 
>> I am stuck with the same linker issue (with more linker issues) and ask 
>> if you know the solution:
>> https://groups.google.com/g/grpc-io/c/g1Xf4rodIo0/m/_s-Kh58FBQAJ
>>
>> Thanks!
>> 在2022年3月9日星期三 UTC+8 01:44:48<veb...@google.com> 写道:
>>
>>> Would you elaborate a bit about how to build it? If you're using cmake 
>>> to build gRPC and your application, you shouldn't need to specify linker 
>>> options.
>>> Please checkout https://grpc.io/docs/languages/cpp/quickstart/ too.
>>> On Wednesday, January 19, 2022 at 2:27:04 AM UTC-8 cansu gençoğlu wrote:
>>>
>>>> I changed the order of the libs while linking and the only remaining 
>>>> error is below. As I understand this 
>>>> `absl::lts_20210324::Mutex::~Mutex()' function is in 
>>>> libabsl_synchronization.a that I already link this library. Any ideas?
>>>>
>>>> Interface.grpc.pb.cc.o: in function 
>>>> `grpc::CompletionQueue::~CompletionQueue()':
>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/includes/grpcpp/impl/codegen/completion_queue.h:119:
>>>>  
>>>> undefined reference to `absl::lts_20210324::Mutex::~Mutex()'
>>>> /usr/bin/ld: CMakeFiles/test.dir/src/MPUInterface.grpc.pb.cc.o: in 
>>>> function 
>>>> `grpc::CompletionQueue::CompletionQueue(grpc_completion_queue_attributes 
>>>> const&)':
>>>>
>>>>
>>>> Best Regards,
>>>>
>>>> Cansu
>>>> 18 Ocak 2022 Salı tarihinde saat 16:29:03 UTC+1 itibarıyla cansu 
>>>> gençoğlu şunları yazdı:
>>>>
>>>>> Hi to all,
>>>>>
>>>>> I am trying to compile basic grpc cpp server and client test code 
>>>>> without installation of the library. I compile all the libraries and link 
>>>>> to my project I believe. However, I got these errors while linking stage. 
>>>>> May be I forgot to link some libs or add include files. Any comment would 
>>>>> help. Thanks.
>>>>>
>>>>>
>>>>> /usr/bin/ld: CMakeFiles/test.dir/src/MPUInterface.grpc.pb.cc.o: in 
>>>>> function `grpc::CompletionQueue::~CompletionQueue()':
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/includes/grpcpp/impl/codegen/completion_queue.h:119:
>>>>>  
>>>>> *undefined reference to `absl::lts_20210324::Mutex::~Mutex()'*
>>>>> /usr/bin/ld: CMakeFiles/test.dir/src/MPUInterface.grpc.pb.cc.o: in 
>>>>> function 
>>>>> `grpc::CompletionQueue::CompletionQueue(grpc_completion_queue_attributes 
>>>>> const&)':
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/includes/grpcpp/impl/codegen/completion_queue.h:253:
>>>>>  
>>>>> *undefined reference to `absl::lts_20210324::Mutex::~Mutex()'*
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libgrpc.a(cluster.upbdefs.c.o):(.data.rel+0x28):
>>>>>  
>>>>> *undefined reference to 
>>>>> `envoy_config_core_v3_config_source_proto_upbdefinit'*
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libgrpc.a(extension.upbdefs.c.o):(.data.rel+0x0):
>>>>>  
>>>>> *undefined reference to 
>>>>> `envoy_config_core_v3_config_source_proto_upbdefinit'*
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libgrpc.a(health_check.upbdefs.c.o):(.data.rel+0x8):
>>>>>  
>>>>> *undefined reference to 
>>>>> `envoy_config_core_v3_event_service_config_proto_upbdefinit'*
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libgrpc.a(endpoint_components.upbdefs.c.o):(.data.rel+0x10):
>>>>>  
>>>>> undefined reference to 
>>>>> `envoy_config_core_v3_config_source_proto_upbdefinit'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libgrpc.a(route.upbdefs.c.o):(.data.rel+0x8):
>>>>>  
>>>>> undefined reference to 
>>>>> `envoy_config_core_v3_config_source_proto_upbdefinit'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libgrpc.a(http_connection_manager.upbdefs.c.o):(.data.rel+0x10):
>>>>>  
>>>>> undefined reference to 
>>>>> `envoy_config_core_v3_config_source_proto_upbdefinit'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libgrpc.a(secret.upbdefs.c.o):(.data.rel+0x8):
>>>>>  
>>>>> undefined reference to 
>>>>> `envoy_config_core_v3_config_source_proto_upbdefinit'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_cordz_info.a(cordz_info.cc.o):
>>>>>  
>>>>> in function 
>>>>> `absl::lts_20211102::cord_internal::CordzInfo::Head(absl::lts_20211102::cord_internal::CordzSnapshot
>>>>>  
>>>>> const&)':
>>>>> cordz_info.cc:(.text+0xc43): *undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::DiagnosticsHandleIsSafeToInspect(absl::lts_20211102::cord_internal::CordzHandle
>>>>>  
>>>>> const*) const'*
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_cordz_info.a(cordz_info.cc.o):
>>>>>  
>>>>> in function 
>>>>> `absl::lts_20211102::cord_internal::CordzInfo::Next(absl::lts_20211102::cord_internal::CordzSnapshot
>>>>>  
>>>>> const&) const':
>>>>> cordz_info.cc:(.text+0xd65): undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::DiagnosticsHandleIsSafeToInspect(absl::lts_20211102::cord_internal::CordzHandle
>>>>>  
>>>>> const*) const'
>>>>> /usr/bin/ld: cordz_info.cc:(.text+0xd8c): undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::DiagnosticsHandleIsSafeToInspect(absl::lts_20211102::cord_internal::CordzHandle
>>>>>  
>>>>> const*) const'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_cordz_info.a(cordz_info.cc.o):
>>>>>  
>>>>> in function 
>>>>> `absl::lts_20211102::cord_internal::CordzInfo::CordzInfo(absl::lts_20211102::cord_internal::CordRep*,
>>>>>  
>>>>> absl::lts_20211102::cord_internal::CordzInfo const*, 
>>>>> absl::lts_20211102::cord_internal::CordzUpdateTracker::MethodIdentifier)':
>>>>> cordz_info.cc:(.text+0x12d8): undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::~CordzHandle()'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_cordz_info.a(cordz_info.cc.o):
>>>>>  
>>>>> in function `absl::lts_20211102::cord_internal::CordzInfo::~CordzInfo()':
>>>>> cordz_info.cc:(.text+0x1350): undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::~CordzHandle()'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_cordz_info.a(cordz_info.cc.o):
>>>>>  
>>>>> in function `absl::lts_20211102::cord_internal::CordzInfo::Untrack()':
>>>>> cordz_info.cc:(.text+0x16b8): undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::SafeToDelete() const'
>>>>> /usr/bin/ld: cordz_info.cc:(.text+0x1739): undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::Delete(absl::lts_20211102::cord_internal::CordzHandle*)'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_cordz_info.a(cordz_info.cc.o):
>>>>>  
>>>>> in function 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::CordzHandle()':
>>>>> cordz_info.cc:(.text._ZN4absl12lts_2021110213cord_internal11CordzHandleC2Ev[_ZN4absl12lts_2021110213cord_internal11CordzHandleC5Ev]+0x1d):
>>>>>  
>>>>> undefined reference to 
>>>>> `absl::lts_20211102::cord_internal::CordzHandle::CordzHandle(bool)'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_cordz_info.a(cordz_info.cc.o):(.data.rel.ro._ZTIN4absl12lts_2021110213cord_internal9CordzInfoE[_ZTIN4absl12lts_2021110213cord_internal9CordzInfoE]+0x10):
>>>>>  
>>>>> *undefined reference to `typeinfo for 
>>>>> absl::lts_20211102::cord_internal::CordzHandle'*
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_hash.a(hash.cc.o):
>>>>>  
>>>>> in function 
>>>>> `absl::lts_20211102::hash_internal::MixingHashState::CombineLargeContiguousImpl32(unsigned
>>>>>  
>>>>> long, unsigned char const*, unsigned long)':
>>>>> hash.cc:(.text+0x4e): undefined reference to 
>>>>> `absl::lts_20211102::hash_internal::CityHash32(char const*, unsigned 
>>>>> long)'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_hash.a(hash.cc.o):
>>>>>  
>>>>> in function 
>>>>> `absl::lts_20211102::hash_internal::MixingHashState::CombineContiguousImpl(unsigned
>>>>>  
>>>>> long, unsigned char const*, unsigned long, std::integral_constant<int, 
>>>>> 4>)':
>>>>> hash.cc:(.text._ZN4absl12lts_2021110213hash_internal15MixingHashState21CombineContiguousImplEmPKhmSt17integral_constantIiLi4EE[_ZN4absl12lts_2021110213hash_internal15MixingHashState21CombineContiguousImplEmPKhmSt17integral_constantIiLi4EE]+0x63):
>>>>>  
>>>>> undefined reference to 
>>>>> `absl::lts_20211102::hash_internal::CityHash32(char 
>>>>> const*, unsigned long)'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_random_internal_randen_hwaes_impl.a(randen_hwaes.cc.o):
>>>>>  
>>>>> in function `absl::lts_20211102::random_internal::RandenHwAes::GetKeys()':
>>>>> randen_hwaes.cc:(.text+0xbbf): *undefined reference to 
>>>>> `absl::lts_20211102::random_internal::kRandenRoundKeys'*
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_random_internal_randen_slow.a(randen_slow.cc.o):
>>>>>  
>>>>> in function `absl::lts_20211102::random_internal::RandenSlow::GetKeys()':
>>>>> randen_slow.cc:(.text+0xb): undefined reference to 
>>>>> `absl::lts_20211102::random_internal::kRandenRoundKeys'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_stacktrace.a(stacktrace.cc.o):
>>>>>  
>>>>> in function `void** NextStackFrame<false, false>(void**, void const*, 
>>>>> unsigned long, unsigned long)':
>>>>> stacktrace.cc:(.text+0xad4): undefined reference to 
>>>>> `absl::lts_20211102::debugging_internal::AddressIsReadable(void const*)'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_stacktrace.a(stacktrace.cc.o):
>>>>>  
>>>>> in function `void** NextStackFrame<false, true>(void**, void const*, 
>>>>> unsigned long, unsigned long)':
>>>>> stacktrace.cc:(.text+0xb5d): undefined reference to 
>>>>> `absl::lts_20211102::debugging_internal::AddressIsReadable(void const*)'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_symbolize.a(symbolize.cc.o):
>>>>>  
>>>>> in function `absl::lts_20211102::InitializeSymbolizer(char const*)':
>>>>> symbolize.cc:(.text+0x11): undefined reference to 
>>>>> `absl::lts_20211102::debugging_internal::VDSOSupport::Init()'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_symbolize.a(symbolize.cc.o):
>>>>>  
>>>>> in function 
>>>>> `absl::lts_20211102::debugging_internal::DemangleInplace(char*, 
>>>>> int, char*, int)':
>>>>> symbolize.cc:(.text+0x2627): undefined reference to 
>>>>> `absl::lts_20211102::debugging_internal::Demangle(char const*, char*, 
>>>>> int)'
>>>>> /usr/bin/ld: 
>>>>> /home/cansuge/CLionProjects/Projects/rpc/lib/libnew/libabsl_symbolize.a(symbolize.cc.o):
>>>>>  
>>>>> in function `absl::lts_20211102::debugging_internal::(anonymous 
>>>>> namespace)::Symbolizer::GetSymbol(void const*)':
>>>>> symbolize.cc:(.text+0x327b): undefined reference to 
>>>>> `absl::lts_20211102::debugging_internal::VDSOSupport::VDSOSupport()'
>>>>> /usr/bin/ld: symbolize.cc:(.text+0x32a9): undefined reference to 
>>>>> `absl::lts_20211102::debugging_internal::VDSOSupport::LookupSymbolByAddress(void
>>>>>  
>>>>> const*, absl::lts_20211102::debugging_internal::ElfMemImage::SymbolInfo*) 
>>>>> const'
>>>>> collect2: error: ld returned 1 exit status
>>>>> ninja: build stopped: subcommand failed.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I also add the command below.
>>>>>
>>>>>
>>>>> : && /usr/bin/c++ -g  CMakeFiles/test.dir/test/RPCClient.cpp.o 
>>>>> CMakeFiles/test.dir/test/test.cpp.o 
>>>>> CMakeFiles/test.dir/src/MPUInterface.grpc.pb.cc.o 
>>>>> CMakeFiles/test.dir/src/MPUInterface.pb.cc.o 
>>>>> CMakeFiles/test.dir/src/MPUInterfaceService.cpp.o 
>>>>> CMakeFiles/test.dir/src/RPCManager.cpp.o -o test 
>>>>> -L/home/cansuge/CLionProjects/Projects/rpc/test   
>>>>> -L/home/cansuge/CLionProjects/Projects/rpc/lib/libnew 
>>>>> -Wl,-rpath,/home/cansuge/CLionProjects/Projects/rpc/test:/home/cansuge/CLionProjects/Projects/rpc/lib/libnew
>>>>>  
>>>>>  -lprotobuf  -lgtest  -lpthread  -lgrpc++_unsecure  -lgrpc++  
>>>>> -Wl,-Bstatic 
>>>>>  -lgrpc++_reflection  -lupb  -Wl,-Bdynamic  -labsl_base  -Wl,-Bstatic 
>>>>>  -labsl_bad_any_cast_impl  -labsl_bad_optional_access 
>>>>>  -labsl_bad_variant_access  -labsl_base  -labsl_city  -labsl_civil_time 
>>>>>  -labsl_cord  -labsl_cord_internal  -labsl_cordz_functions 
>>>>>  -labsl_cordz_handle  -labsl_cordz_info  -labsl_cordz_sample_token 
>>>>>  -labsl_debugging_internal  -labsl_demangle_internal  
>>>>> -labsl_examine_stack 
>>>>>  -labsl_exponential_biased  -labsl_failure_signal_handler  -labsl_flags 
>>>>>  -labsl_flags_commandlineflag  -labsl_flags_commandlineflag_internal 
>>>>>  -labsl_flags_config  -labsl_flags_internal  -labsl_flags_marshalling 
>>>>>  -labsl_flags_parse  -labsl_flags_private_handle_accessor 
>>>>>  -labsl_flags_program_name  -labsl_flags_reflection  -labsl_flags_usage 
>>>>>  -labsl_flags_usage_internal  -labsl_graphcycles_internal  -labsl_hash 
>>>>>  -labsl_hashtablez_sampler  -labsl_int128  -labsl_leak_check 
>>>>>  -labsl_leak_check_disable  -labsl_log_severity  -labsl_low_level_hash 
>>>>>  -labsl_malloc_internal  -labsl_periodic_sampler 
>>>>>  -labsl_random_distributions  
>>>>> -labsl_random_internal_distribution_test_util 
>>>>>  -labsl_random_internal_platform  -labsl_random_internal_pool_urbg 
>>>>>  -labsl_random_internal_randen  -labsl_random_internal_randen_hwaes 
>>>>>  -labsl_random_internal_randen_hwaes_impl 
>>>>>  -labsl_random_internal_randen_slow  -labsl_random_internal_seed_material 
>>>>>  -labsl_random_seed_gen_exception  -labsl_random_seed_sequences 
>>>>>  -labsl_raw_hash_set  -labsl_raw_logging_internal  -labsl_scoped_set_env 
>>>>>  -labsl_spinlock_wait  -labsl_stacktrace  -labsl_status  -labsl_statusor 
>>>>>  -labsl_str_format_internal  -labsl_strerror  -labsl_strings 
>>>>>  -labsl_strings_internal  -labsl_symbolize  -labsl_synchronization 
>>>>>  -labsl_throw_delegate  -labsl_time  -labsl_time_zone  -laddress_sorting 
>>>>>  -lgpr  -lgrpc++  -lgrpc++_alts  -lgrpc++_error_details 
>>>>>  -lgrpc++_reflection  -lgrpc++_unsecure  -lgrpc  -lgrpc_plugin_support 
>>>>>  -lgrpc_unsecure  -lgrpcpp_channelz  -lprotobuf  -lprotobuf-lite  
>>>>> -lprotoc 
>>>>>  -lre2  -lssl  -lcrypto  -lcares  -lprotoc  -lprotobuf  -lprotobuf-lite 
>>>>>  -lre2  -ltesting  -lz  -lupb  -Wl,-Bdynamic  -labsl_base  -Wl,-Bstatic 
>>>>>  -labsl_bad_any_cast_impl  -labsl_bad_optional_access 
>>>>>  -labsl_bad_variant_access  -labsl_base  -labsl_city  -labsl_civil_time 
>>>>>  -labsl_cord  -labsl_cord_internal  -labsl_cordz_functions 
>>>>>  -labsl_cordz_handle  -labsl_cordz_info  -labsl_cordz_sample_token 
>>>>>  -labsl_debugging_internal  -labsl_demangle_internal  
>>>>> -labsl_examine_stack 
>>>>>  -labsl_exponential_biased  -labsl_failure_signal_handler  -labsl_flags 
>>>>>  -labsl_flags_commandlineflag  -labsl_flags_commandlineflag_internal 
>>>>>  -labsl_flags_config  -labsl_flags_internal  -labsl_flags_marshalling 
>>>>>  -labsl_flags_parse  -labsl_flags_private_handle_accessor 
>>>>>  -labsl_flags_program_name  -labsl_flags_reflection  -labsl_flags_usage 
>>>>>  -labsl_flags_usage_internal  -labsl_graphcycles_internal  -labsl_hash 
>>>>>  -labsl_hashtablez_sampler  -labsl_int128  -labsl_leak_check 
>>>>>  -labsl_leak_check_disable  -labsl_log_severity  -labsl_low_level_hash 
>>>>>  -labsl_malloc_internal  -labsl_periodic_sampler 
>>>>>  -labsl_random_distributions  
>>>>> -labsl_random_internal_distribution_test_util 
>>>>>  -labsl_random_internal_platform  -labsl_random_internal_pool_urbg 
>>>>>  -labsl_random_internal_randen  -labsl_random_internal_randen_hwaes 
>>>>>  -labsl_random_internal_randen_hwaes_impl 
>>>>>  -labsl_random_internal_randen_slow  -labsl_random_internal_seed_material 
>>>>>  -labsl_random_seed_gen_exception  -labsl_random_seed_sequences 
>>>>>  -labsl_raw_hash_set  -labsl_raw_logging_internal  -labsl_scoped_set_env 
>>>>>  -labsl_spinlock_wait  -labsl_stacktrace  -labsl_status  -labsl_statusor 
>>>>>  -labsl_str_format_internal  -labsl_strerror  -labsl_strings 
>>>>>  -labsl_strings_internal  -labsl_symbolize  -labsl_synchronization 
>>>>>  -labsl_throw_delegate  -labsl_time  -labsl_time_zone  -laddress_sorting 
>>>>>  -lgpr  -lgrpc++  -lgrpc++_alts  -lgrpc++_error_details  
>>>>> -lgrpc++_unsecure 
>>>>>  -lgrpc  -lgrpc_plugin_support  -lgrpc_unsecure  -lgrpcpp_channelz 
>>>>>  -lprotobuf  -lprotobuf-lite  -lprotoc  -lre2  -lssl  -lcrypto  -lcares 
>>>>>  -lprotobuf  -lprotobuf-lite  -lprotoc  -lre2  -lssl  -lcrypto  -lcares 
>>>>>  -ltesting  -lz  -Wl,-Bdynamic && :
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/f3cacfb7-fe47-445a-86fa-d026e1365885n%40googlegroups.com.

Reply via email to