Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LINK Errors When Using arm64-windows-static-md Triplet with gRPC Package #43561

Open
atul-bhalerao-alludo opened this issue Jan 31, 2025 · 1 comment
Assignees
Labels
requires:repro The issue is not currently repro-able

Comments

@atul-bhalerao-alludo
Copy link

Describe the bug

I am experiencing LINK errors while building my application with the arm64-windows-static-md triplet. The application builds successfully with the x64-windows-static-md triplet but fails for the arm64 configuration.

Environment

  • OS: Windows
  • Compiler: MSVC 19.42.34435.0
  • vcpkg-scripts version: fc97d3e

To Reproduce

Project Setup:

  1. The project uses the gRPC package.
  2. CMakeLists.txt is used to configure the build process.
  3. The vcpkg.json file is used to install the gRPC package.
vcpkg.json
{
  "name": "mylib",
  "version": "1.0.0",
  "dependencies": [
    {
      "name": "grpc",
      "platform": "(windows & x64 & static )"
    },
    {
      "name": "grpc",
      "platform": "(windows & arm64 & static )"
    }
  ]
}

Steps to reproduce the behavior:

  1. Use the vcpkg.json to install the gRPC package for the application.
  2. Configure and build the application using CMakeLists.txt.
  3. Set the triplet to x64-windows-static-md and build the application successfully.
  4. Change the triplet to arm64-windows-static-md and attempt to build the application.

Expected behavior

The application should build successfully with the arm64-windows-static-md triplet, just like it does with the x64-windows-static-md triplet.

Failure logs

  • The build process fails with LINK errors.
  • LINK errors are as follows:
LINK ERRORS
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol gpr_now referenced in function #gpr_now$exit_thunk (EC Symbol)
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol gpr_time_add referenced in function #gpr_time_add$exit_thunk (EC Symbol)
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol gpr_time_from_seconds referenced in function #gpr_time_from_seconds$exit_thunk (EC Symbol)
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol "class std::shared_ptr<class grpc::ChannelCredentials> __cdecl grpc::InsecureChannelCredentials(void)" (?InsecureChannelCredentials@grpc@@YA?AV?$shared_ptr@VChannelCredentials@grpc@@@std@@XZ) referenced in function "class std::shared_ptr<class grpc::ChannelCredentials> __cdecl grpc::InsecureChannelCredentials$exit_thunk(void)" (?InsecureChannelCredentials$exit_thunk@grpc@@$$hYA?AV?$shared_ptr@VChannelCredentials@grpc@@@std@@XZ) (EC Symbol)
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol "class std::shared_ptr<class grpc::Channel> __cdecl grpc::CreateChannel(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::shared_ptr<class grpc::ChannelCredentials> const &)" (?CreateChannel@grpc@@YA?AV?$shared_ptr@VChannel@grpc@@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@AEBV?$shared_ptr@VChannelCredentials@grpc@@@3@@Z) referenced in function "class std::shared_ptr<class grpc::Channel> __cdecl grpc::CreateChannel$exit_thunk(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::shared_ptr<class grpc::ChannelCredentials> const &)" (?CreateChannel$exit_thunk@grpc@@$$hYA?AV?$shared_ptr@VChannel@grpc@@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@AEBV?$shared_ptr@VChannelCredentials@grpc@@@3@@Z) (EC Symbol)
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol "public: void __cdecl google::protobuf::internal::ArenaStringPtr::Set<>(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class google::protobuf::Arena *)" (??$Set@$$V@ArenaStringPtr@internal@protobuf@google@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVArena@23@@Z) referenced in function "public: void __cdecl google::protobuf::internal::ArenaStringPtr::Set$exit_thunk<>(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class google::protobuf::Arena *)" (??$Set$exit_thunk@$$V@ArenaStringPtr@internal@protobuf@google@@$$hQEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVArena@23@@Z) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "public: void __cdecl google::protobuf::internal::ArenaStringPtr::Set<>(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class google::protobuf::Arena *)" (??$Set@$$V@ArenaStringPtr@internal@protobuf@google@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVArena@23@@Z) (EC Symbol)
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol "public: __cdecl grpc::ClientContext::ClientContext(void)" (??0ClientContext@grpc@@QEAA@XZ) referenced in function "public: __cdecl grpc::ClientContext$exit_thunk::ClientContext$exit_thunk(void)" (??0ClientContext$exit_thunk@grpc@@$$hQEAA@XZ) (EC Symbol)
MyLib.lib(DllLoaderClient.cpp.obj) : error LNK2019: unresolved external symbol "public: __cdecl grpc::ClientContext::~ClientContext(void)" (??1ClientContext@grpc@@QEAA@XZ) referenced in function "public: __cdecl grpc::ClientContext$exit_thunk::~ClientContext$exit_thunk(void)" (??1ClientContext$exit_thunk@grpc@@$$hQEAA@XZ) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "public: static char const * __cdecl google::protobuf::internal::TcParser::MiniParse(class google::protobuf::MessageLite *,char const *,class google::protobuf::internal::ParseContext *,struct google::protobuf::internal::TcFieldData,struct google::protobuf::internal::TcParseTableBase const *,unsigned __int64)" (?MiniParse@TcParser@internal@protobuf@google@@$$hSAPEBDPEAVMessageLite@34@PEBDPEAVParseContext@234@UTcFieldData@234@PEBUTcParseTableBase@234@_K@Z) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "public: static char const * __cdecl google::protobuf::internal::TcParser::MiniParse(class google::protobuf::MessageLite *,char const *,class google::protobuf::internal::ParseContext *,struct google::protobuf::internal::TcFieldData,struct google::protobuf::internal::TcParseTableBase const *,unsigned __int64)" (?MiniParse@TcParser@internal@protobuf@google@@SAPEBDPEAVMessageLite@34@PEBDPEAVParseContext@234@UTcFieldData@234@PEBUTcParseTableBase@234@_K@Z) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "protected: static struct google::protobuf::internal::DescriptorMethods const google::protobuf::Message::kDescriptorMethods" (?kDescriptorMethods@Message@protobuf@google@@1UDescriptorMethods@internal@23@B) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "class google::protobuf::internal::ExplicitlyConstructed<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,8> google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3V?$ExplicitlyConstructed@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@$07@123@A) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "public: static char const * __cdecl google::protobuf::internal::TcParser::GenericFallback(class google::protobuf::MessageLite *,char const *,class google::protobuf::internal::ParseContext *,struct google::protobuf::internal::TcFieldData,struct google::protobuf::internal::TcParseTableBase const *,unsigned __int64)" (?GenericFallback@TcParser@internal@protobuf@google@@$$hSAPEBDPEAVMessageLite@34@PEBDPEAVParseContext@234@UTcFieldData@234@PEBUTcParseTableBase@234@_K@Z) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "public: static char const * __cdecl google::protobuf::internal::TcParser::GenericFallback(class google::protobuf::MessageLite *,char const *,class google::protobuf::internal::ParseContext *,struct google::protobuf::internal::TcFieldData,struct google::protobuf::internal::TcParseTableBase const *,unsigned __int64)" (?GenericFallback@TcParser@internal@protobuf@google@@SAPEBDPEAVMessageLite@34@PEBDPEAVParseContext@234@UTcFieldData@234@PEBUTcParseTableBase@234@_K@Z) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "public: static char const * __cdecl google::protobuf::internal::TcParser::FastV8S1(class google::protobuf::MessageLite *,char const *,class google::protobuf::internal::ParseContext *,struct google::protobuf::internal::TcFieldData,struct google::protobuf::internal::TcParseTableBase const *,unsigned __int64)" (?FastV8S1@TcParser@internal@protobuf@google@@$$hSAPEBDPEAVMessageLite@34@PEBDPEAVParseContext@234@UTcFieldData@234@PEBUTcParseTableBase@234@_K@Z) (EC Symbol)
MyLib.lib(dllloader.pb.cc.obj) : error LNK2001: unresolved external symbol "public: static char const * __cdecl google::protobuf::internal::TcParser::FastV8S1(class google::protobuf::MessageLite *,char const *,class google::protobuf::internal::ParseContext *,struct google::protobuf::internal::TcFieldData,struct google::protobuf::internal::TcParseTableBase const *,unsigned __int64)" (?FastV8S1@TcParser@internal@protobuf@google@@SAPEBDPEAVMessageLite@34@PEBDPEAVParseContext@234@UTcFieldData@234@PEBUTcParseTableBase@234@_K@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "class std::shared_ptr<class grpc::GlobalCallbackHook> __cdecl grpc::GetGlobalCallbackHook(void)" (?GetGlobalCallbackHook@grpc@@YA?AV?$shared_ptr@VGlobalCallbackHook@grpc@@@std@@XZ) referenced in function "class std::shared_ptr<class grpc::GlobalCallbackHook> __cdecl grpc::GetGlobalCallbackHook$exit_thunk(void)" (?GetGlobalCallbackHook$exit_thunk@grpc@@$$hYA?AV?$shared_ptr@VGlobalCallbackHook@grpc@@@std@@XZ) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol gpr_inf_future referenced in function #gpr_inf_future$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_ref referenced in function #grpc_slice_ref$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_unref referenced in function #grpc_slice_unref$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_new_with_user_data referenced in function #grpc_slice_new_with_user_data$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_malloc referenced in function #grpc_slice_malloc$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_from_copied_buffer referenced in function #grpc_slice_from_copied_buffer$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_from_static_buffer referenced in function #grpc_slice_from_static_buffer$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_sub referenced in function #grpc_slice_sub$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_split_tail referenced in function #grpc_slice_split_tail$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_split_head referenced in function #grpc_slice_split_head$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_empty_slice referenced in function #grpc_empty_slice$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: __cdecl absl::lts_20240722::log_internal::LogMessage::LogMessage(char const *,int,struct absl::lts_20240722::log_internal::LogMessage::ErrorTag)" (??0LogMessage@log_internal@lts_20240722@absl@@QEAA@PEBDHUErrorTag@0123@@Z) referenced in function "public: __cdecl absl::lts_20240722::log_internal::LogMessage$exit_thunk::LogMessage$exit_thunk(char const *,int,struct absl::lts_20240722::log_internal::LogMessage$exit_thunk::ErrorTag)" (??0LogMessage$exit_thunk@log_internal@lts_20240722@absl@@$$hQEAA@PEBDHUErrorTag@0123@@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: __cdecl absl::lts_20240722::log_internal::LogMessage::~LogMessage(void)" (??1LogMessage@log_internal@lts_20240722@absl@@QEAA@XZ) referenced in function "public: __cdecl absl::lts_20240722::log_internal::LogMessage$exit_thunk::~LogMessage$exit_thunk(void)" (??1LogMessage$exit_thunk@log_internal@lts_20240722@absl@@$$hQEAA@XZ) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: __cdecl absl::lts_20240722::log_internal::LogMessage::OstreamView::OstreamView(struct absl::lts_20240722::log_internal::LogMessage::LogMessageData &)" (??0OstreamView@LogMessage@log_internal@lts_20240722@absl@@QEAA@AEAULogMessageData@1234@@Z) referenced in function "public: __cdecl absl::lts_20240722::log_internal::LogMessage::OstreamView$exit_thunk::OstreamView$exit_thunk(struct absl::lts_20240722::log_internal::LogMessage::LogMessageData &)" (??0OstreamView$exit_thunk@LogMessage@log_internal@lts_20240722@absl@@$$hQEAA@AEAULogMessageData@1234@@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: virtual __cdecl absl::lts_20240722::log_internal::LogMessage::OstreamView::~OstreamView(void)" (??1OstreamView@LogMessage@log_internal@lts_20240722@absl@@UEAA@XZ) referenced in function "public: virtual __cdecl absl::lts_20240722::log_internal::LogMessage::OstreamView$exit_thunk::~OstreamView$exit_thunk(void)" (??1OstreamView$exit_thunk@LogMessage@log_internal@lts_20240722@absl@@$$hUEAA@XZ) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl absl::lts_20240722::log_internal::LogMessage::OstreamView::stream(void)" (?stream@OstreamView@LogMessage@log_internal@lts_20240722@absl@@QEAAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@XZ) referenced in function "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl absl::lts_20240722::log_internal::LogMessage::OstreamView::stream$exit_thunk(void)" (?stream$exit_thunk@OstreamView@LogMessage@log_internal@lts_20240722@absl@@$$hQEAAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@XZ) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_buffer_add referenced in function #grpc_slice_buffer_add$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_buffer_add_indexed referenced in function #grpc_slice_buffer_add_indexed$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_slice_buffer_pop referenced in function #grpc_slice_buffer_pop$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_raw_byte_buffer_create referenced in function #grpc_raw_byte_buffer_create$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_byte_buffer_copy referenced in function #grpc_byte_buffer_copy$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_byte_buffer_destroy referenced in function #grpc_byte_buffer_destroy$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_byte_buffer_reader_init referenced in function #grpc_byte_buffer_reader_init$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_byte_buffer_reader_destroy referenced in function #grpc_byte_buffer_reader_destroy$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_byte_buffer_reader_peek referenced in function #grpc_byte_buffer_reader_peek$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_init referenced in function #grpc_init$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_shutdown referenced in function #grpc_shutdown$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_completion_queue_factory_lookup referenced in function #grpc_completion_queue_factory_lookup$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_completion_queue_create referenced in function #grpc_completion_queue_create$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_completion_queue_pluck referenced in function #grpc_completion_queue_pluck$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_completion_queue_shutdown referenced in function #grpc_completion_queue_shutdown$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_completion_queue_destroy referenced in function #grpc_completion_queue_destroy$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_call_arena_alloc referenced in function #grpc_call_arena_alloc$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_call_start_batch referenced in function #grpc_call_start_batch$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_call_ref referenced in function #grpc_call_ref$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_call_unref referenced in function #grpc_call_unref$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol grpc_call_error_to_string referenced in function #grpc_call_error_to_string$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "private: void __cdecl absl::lts_20240722::log_internal::LogMessage::CopyToEncodedBuffer<0>(class absl::lts_20240722::string_view)" (??$CopyToEncodedBuffer@$0A@@LogMessage@log_internal@lts_20240722@absl@@AEAAXVstring_view@23@@Z) referenced in function "private: void __cdecl absl::lts_20240722::log_internal::LogMessage::CopyToEncodedBuffer$exit_thunk<0>(class absl::lts_20240722::string_view)" (??$CopyToEncodedBuffer$exit_thunk@$0A@@LogMessage@log_internal@lts_20240722@absl@@$$hAEAAXVstring_view@23@@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "private: void __cdecl absl::lts_20240722::Mutex::Dtor(void)" (?Dtor@Mutex@lts_20240722@absl@@AEAAXXZ) referenced in function "private: void __cdecl absl::lts_20240722::Mutex::Dtor$exit_thunk(void)" (?Dtor$exit_thunk@Mutex@lts_20240722@absl@@$$hAEAAXXZ) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl absl::lts_20240722::cord_internal::CordzInfo::TrackCord(class absl::lts_20240722::cord_internal::InlineData &,enum absl::lts_20240722::cord_internal::CordzUpdateTracker::MethodIdentifier,__int64)" (?TrackCord@CordzInfo@cord_internal@lts_20240722@absl@@SAXAEAVInlineData@234@W4MethodIdentifier@CordzUpdateTracker@234@_J@Z) referenced in function "public: static void __cdecl absl::lts_20240722::cord_internal::CordzInfo::TrackCord$exit_thunk(class absl::lts_20240722::cord_internal::InlineData &,enum absl::lts_20240722::cord_internal::CordzUpdateTracker::MethodIdentifier,__int64)" (?TrackCord$exit_thunk@CordzInfo@cord_internal@lts_20240722@absl@@$$hSAXAEAVInlineData@234@W4MethodIdentifier@CordzUpdateTracker@234@_J@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: void __cdecl absl::lts_20240722::Cord::Append(class absl::lts_20240722::Cord &&)" (?Append@Cord@lts_20240722@absl@@QEAAX$$QEAV123@@Z) referenced in function "public: void __cdecl absl::lts_20240722::Cord::Append$exit_thunk(class absl::lts_20240722::Cord &&)" (?Append$exit_thunk@Cord@lts_20240722@absl@@$$hQEAAX$$QEAV123@@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: class absl::lts_20240722::Cord __cdecl absl::lts_20240722::Cord::Subcord(unsigned __int64,unsigned __int64)const " (?Subcord@Cord@lts_20240722@absl@@QEBA?AV123@_K0@Z) referenced in function "public: class absl::lts_20240722::Cord __cdecl absl::lts_20240722::Cord::Subcord$exit_thunk(unsigned __int64,unsigned __int64)const " (?Subcord$exit_thunk@Cord@lts_20240722@absl@@$$hQEBA?AV123@_K0@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl google::protobuf::MessageLite::InitializationErrorString(void)const " (?InitializationErrorString@MessageLite@protobuf@google@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl google::protobuf::MessageLite::InitializationErrorString$exit_thunk(void)const " (?InitializationErrorString$exit_thunk@MessageLite@protobuf@google@@$$hQEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: bool __cdecl google::protobuf::MessageLite::ParseFromZeroCopyStream(class google::protobuf::io::ZeroCopyInputStream *)" (?ParseFromZeroCopyStream@MessageLite@protobuf@google@@QEAA_NPEAVZeroCopyInputStream@io@23@@Z) referenced in function "public: bool __cdecl google::protobuf::MessageLite::ParseFromZeroCopyStream$exit_thunk(class google::protobuf::io::ZeroCopyInputStream *)" (?ParseFromZeroCopyStream$exit_thunk@MessageLite@protobuf@google@@$$hQEAA_NPEAVZeroCopyInputStream@io@23@@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "public: unsigned char * __cdecl google::protobuf::MessageLite::SerializeWithCachedSizesToArray(unsigned char *)const " (?SerializeWithCachedSizesToArray@MessageLite@protobuf@google@@QEBAPEAEPEAE@Z) referenced in function "public: unsigned char * __cdecl google::protobuf::MessageLite::SerializeWithCachedSizesToArray$exit_thunk(unsigned char *)const " (?SerializeWithCachedSizesToArray$exit_thunk@MessageLite@protobuf@google@@$$hQEBAPEAEPEAE@Z) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol gpr_malloc referenced in function #gpr_malloc$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol gpr_free referenced in function #gpr_free$exit_thunk (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2019: unresolved external symbol "private: void __cdecl absl::lts_20240722::Cord::DestroyCordSlow(void)" (?DestroyCordSlow@Cord@lts_20240722@absl@@AEAAXXZ) referenced in function "private: void __cdecl absl::lts_20240722::Cord::DestroyCordSlow$exit_thunk(void)" (?DestroyCordSlow$exit_thunk@Cord@lts_20240722@absl@@$$hAEAAXXZ) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2001: unresolved external symbol "private: static struct std::atomic<bool> google::protobuf::io::CodedOutputStream::default_serialization_deterministic_" (?default_serialization_deterministic_@CodedOutputStream@io@protobuf@google@@0U?$atomic@_N@std@@A) (EC Symbol)
MyLib.lib(dllloader.grpc.pb.cc.obj) : error LNK2001: unresolved external symbol "public: static class grpc::Status const & const grpc::Status::OK" (?OK@Status@grpc@@2AEBV12@EB) (EC Symbol)

Additional context

  • Operating System: Windows
  • System Architecture: arm64EC
  • Build System: CMake
  • Package Manager: vcpkg
  • Library: gRPC
  • Triplets:
    • Successful: x64-windows-static-md
    • Failing: arm64-windows-static-md
Cmake Preset configuration used for arm64
{
  "version": 3,
  "cmakeMinimumRequired": {
    "major": 3,
    "minor": 21,
    "patch": 0
  },
  "configurePresets": [
    {
      "name": "windows-debug-arm64",
      "binaryDir": "${sourceDir}/build/windows-debug-arm64",
      "displayName": "msvc Debug (x64)",
      "description": "Target Windows with the msvc compiler, debug build type",
      "inherits": "windows-common-arm64",
      "architecture": {
        "value": "arm64",
        "strategy": "external"
      },
      "toolset": {
        "value": "host=arm64",
        "strategy": "external"
      },
      "cacheVariables": {
        "ENABLE_CPPCHECK_DEFAULT": "FALSE",
        "ENABLE_CLANG_TIDY_DEFAULT": "FALSE",
        "PROCESSOR": "arm64",
        "CMAKE_BUILD_TYPE": "Debug",
        "ENABLE_DEVELOPER_MODE": "ON",
        "CMAKE_CXX_FLAGS": "/c /GR /EHsc /Od /Zi /W3 /MDd /RTCsu",
        "_DEBUG": "ON",
        "TEST": "ON",
        "CMAKE_SHARED_LINKER_FLAGS_DEBUG": "/DEBUG",
        "VCPKG_TARGET_TRIPLET": "arm64-windows-static-md",
        "VCPKG_HOST_TRIPLET": "arm64-windows-static-md"
      }
    }
  ]
}
@JonLiu1993 JonLiu1993 added the requires:repro The issue is not currently repro-able label Feb 5, 2025
@JonLiu1993
Copy link
Member

@atul-bhalerao-alludo, Thanks for posting this issue, I successfully installed grpc:arm64-windows-static-md locally using the vcpkg.json you provided:

-- Found external ninja('1.12.1').
-- Configuring arm64-windows-static-md
-- Building arm64-windows-static-md-dbg
-- Building arm64-windows-static-md-rel
-- Installing: F:/test/vcpkg/packages/grpc_arm64-windows-static-md/share/grpc/copyright
-- Performing post-build validation
Stored binaries in 1 destinations in 5.1 min.
Elapsed time to handle grpc:arm64-windows-static-md: 33 min
grpc:arm64-windows-static-md package ABI: 6d2345d478cd95d104d95f4ad9248ca787ca61a4658f7afedfbeaf86f3626405
Total install time: 1.3 h
grpc provides CMake targets:

  # this is heuristically generated, and may not be correct
  find_package(gRPC CONFIG REQUIRED)
  # note: 13 additional targets are not displayed.
  target_link_libraries(main PRIVATE gRPC::gpr gRPC::grpc gRPC::grpc++ gRPC::grpc++_alts)

But when I'm testing usage I get this error:

1> CMake generation started for default configuration: 'x64-Debug'.
1> Found and using vcpkg toolchain file (F:/test/vcpkg/scripts/buildsystems/vcpkg.cmake).
1> Command line: "C:\WINDOWS\system32\cmd.exe" /c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\test\source\repos\CMakeProject1\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" -DCMAKE_TOOLCHAIN_FILE="F:/test/vcpkg/scripts/buildsystems/vcpkg.cmake" "C:\Users\test\source\repos\CMakeProject1" 2>&1"
1> Working directory: C:\Users\test\source\repos\CMakeProject1\out\build\x64-Debug
1> [CMake] -- The C compiler identification is MSVC 19.42.34436.0
1> [CMake] -- The CXX compiler identification is MSVC 19.42.34436.0
1> [CMake] -- Detecting C compiler ABI info
1> [CMake] -- Detecting C compiler ABI info - done
1> [CMake] -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe - skipped
1> [CMake] -- Detecting C compile features
1> [CMake] -- Detecting C compile features - done
1> [CMake] -- Detecting CXX compiler ABI info
1> [CMake] -- Detecting CXX compiler ABI info - done
1> [CMake] -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe - skipped
1> [CMake] -- Detecting CXX compile features
1> [CMake] -- Detecting CXX compile features - done
1> [CMake] CMake Error at F:/test/vcpkg/scripts/buildsystems/vcpkg.cmake:859 (_find_package):
1> [CMake]   Could not find a package configuration file provided by "gRPC" with any of
1> [CMake]   the following names:
1> [CMake] 
1> [CMake]     gRPCConfig.cmake
1> [CMake]     grpc-config.cmake
1> [CMake] 
1> [CMake]   Add the installation prefix of "gRPC" to CMAKE_PREFIX_PATH or set
1> [CMake]   "gRPC_DIR" to a directory containing one of the above files.  If "gRPC"
1> [CMake]   provides a separate development package or SDK, be sure it has been
1> [CMake]   installed.
1> [CMake] Call Stack (most recent call first):
1> [CMake]   CMakeProject1/CMakeLists.txt:7 (find_package)
1> [CMake] -- Configuring incomplete, errors occurred!
1> 'C:\WINDOWS\system32\cmd.exe' '/c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\test\source\repos\CMakeProject1\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" -DCMAKE_TOOLCHAIN_FILE="F:/test/vcpkg/scripts/buildsystems/vcpkg.cmake" "C:\Users\test\source\repos\CMakeProject1" 2>&1"' execution failed with error: ''C:\WINDOWS\system32\cmd.exe' '/c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="C:\Users\test\source\repos\CMakeProject1\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" -DCMAKE_TOOLCHAIN_FILE="F:/test/vcpkg/scripts/buildsystems/vcpkg.cmake" "C:\Users\test\source\repos\CMakeProject1" 2>&1"' returned with exit code: 1'.

I investigated and found that the reason was that after the installation of grpc:arm64-windows-static-md triplet, only gRPCConfig.cmake was generated in the packages path, and nothing was generated in the installed path, so an error was reported.

Packsges:
Image

Installed:
Image

So I'm wondering how you use it, can you provide your CMakeLists?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
requires:repro The issue is not currently repro-able
Projects
None yet
Development

No branches or pull requests

2 participants