Thanks, I notice that shortly after I switched over to the master build and the problem went away, however its back again on the master build. Did you come up with a workaround - I build with Visual Studio 2015
John On Thursday, August 25, 2016 at 7:01:00 AM UTC-4, [email protected] wrote: > > Hi there, > > I have the same problem. Link C++ library built from 1.0.0 tag by Visual > Studio project, show unresolved reference error to Channel and Server class > > After some research, I believe the problem is from conflicted name. > Project grpc++ have both channel.c and channel.cc source file (in different > directory), both compiled to channel.lib (in the same directory). so one > library overwrite another. > > Other conflicted names are byte_buffer.c/ byte_buffer.cc, > completion_queue.c/ completion_queue.cc, server.c/ server.cc > > John Coffey於 2016年8月22日星期一 UTC+8上午11時19分30秒寫道: >> >> Nicolas, I was able to work around the problem by simply switching to the >> master branch, looks like something is a bit off with the 1.0.0 tag release >> >> John >> >> On Sunday, August 21, 2016 at 3:04:27 PM UTC-4, John Coffey wrote: >>> >>> Nicolas, that was indeed the case when I switched from the 0_15_1 to the >>> v1.0.0 branch. However today I changed to the 1.0.0 tag and the problems >>> are cropping up once more and this time despite clean builds I cannot seem >>> to resolve the linker issues. I did a build from scratch and I get the >>> following missing symbol linker errors. I would have thought that >>> grpc++.lib was the guilty library bit that does not look to be the case. >>> Perhaps you can spot the problem. >>> >>> John >>> >>> 1>main.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to >>> '/OPT:LBR' specification >>> 1>ca.lib(CADaemon.obj) : error LNK2019: unresolved external symbol >>> "public: virtual __cdecl grpc::Server::~Server(void)" >>> (??1Server@grpc@@UEAA@XZ) referenced in function "public: virtual void * >>> __cdecl grpc::Server::`scalar deleting destructor'(unsigned int)" >>> (??_GServer@grpc@@UEAAPEAXI@Z) >>> 1>grpc++.lib(server_builder.obj) : error LNK2001: unresolved external >>> symbol "public: virtual __cdecl grpc::Server::~Server(void)" >>> (??1Server@grpc@@UEAA@XZ) >>> 1>ca.lib(CADaemon.obj) : error LNK2019: unresolved external symbol >>> "public: virtual void __cdecl grpc::Server::Wait(void)" >>> (?Wait@Server@grpc@@UEAAXXZ) referenced in function "private: void __cdecl >>> CADaemon::grpcService(class std::basic_string<char,struct >>> std::char_traits<char>,class std::allocator<char> > const &)" >>> (?grpcService@CADaemon@@AEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) >>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>> symbol "private: __cdecl grpc::Server::Server(class >>> grpc::ThreadPoolInterface *,bool,int,class grpc::ChannelArguments *)" >>> (??0Server@grpc@@AEAA@PEAVThreadPoolInterface@1@_NHPEAVChannelArguments@1@@Z) >>> >>> referenced in function "public: class std::unique_ptr<class >>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>> grpc::ServerBuilder::BuildAndStart(void)" >>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>> symbol "private: virtual bool __cdecl grpc::Server::RegisterService(class >>> std::basic_string<char,struct std::char_traits<char>,class >>> std::allocator<char> > const *,class grpc::Service *)" >>> (?RegisterService@Server@grpc@@EEAA_NPEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVService@2@@Z) >>> >>> referenced in function "public: class std::unique_ptr<class >>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>> grpc::ServerBuilder::BuildAndStart(void)" >>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>> symbol "private: virtual void __cdecl >>> grpc::Server::RegisterAsyncGenericService(class grpc::AsyncGenericService >>> *)" >>> (?RegisterAsyncGenericService@Server@grpc@@EEAAXPEAVAsyncGenericService@2@@Z) >>> >>> referenced in function "public: class std::unique_ptr<class >>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>> grpc::ServerBuilder::BuildAndStart(void)" >>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>> symbol "private: virtual int __cdecl grpc::Server::AddListeningPort(class >>> std::basic_string<char,struct std::char_traits<char>,class >>> std::allocator<char> > const &,class grpc::ServerCredentials *)" >>> (?AddListeningPort@Server@grpc@@EEAAHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVServerCredentials@2@@Z) >>> >>> referenced in function "public: class std::unique_ptr<class >>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>> grpc::ServerBuilder::BuildAndStart(void)" >>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>> symbol "private: virtual bool __cdecl grpc::Server::Start(class >>> grpc::ServerCompletionQueue * *,unsigned __int64)" >>> (?Start@Server@grpc@@EEAA_NPEAPEAVServerCompletionQueue@2@_K@Z) referenced >>> in function "public: class std::unique_ptr<class grpc::Server,struct >>> std::default_delete<class grpc::Server> > __cdecl >>> grpc::ServerBuilder::BuildAndStart(void)" >>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>> symbol "private: class grpc::ServerInitializer * __cdecl >>> grpc::Server::initializer(void)" >>> (?initializer@Server@grpc@@AEAAPEAVServerInitializer@2@XZ) referenced in >>> function "public: class std::unique_ptr<class grpc::Server,struct >>> std::default_delete<class grpc::Server> > __cdecl >>> grpc::ServerBuilder::BuildAndStart(void)" >>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>> 1>grpc++.lib(create_channel_internal.obj) : error LNK2019: unresolved >>> external symbol "public: virtual __cdecl grpc::Channel::~Channel(void)" >>> (??1Channel@grpc@@UEAA@XZ) referenced in function "public: virtual void * >>> __cdecl grpc::Channel::`scalar deleting destructor'(unsigned int)" >>> (??_GChannel@grpc@@UEAAPEAXI@Z) >>> 1>grpc++.lib(create_channel_internal.obj) : error LNK2019: unresolved >>> external symbol "private: __cdecl grpc::Channel::Channel(class >>> std::basic_string<char,struct std::char_traits<char>,class >>> std::allocator<char> > const &,struct grpc_channel *)" >>> (??0Channel@grpc@@AEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAUgrpc_channel@@@Z) >>> >>> referenced in function "class std::shared_ptr<class grpc::Channel> __cdecl >>> grpc::CreateChannelInternal(class std::basic_string<char,struct >>> std::char_traits<char>,class std::allocator<char> > const &,struct >>> grpc_channel *)" >>> (?CreateChannelInternal@grpc@@YA?AV?$shared_ptr@VChannel@grpc@@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@PEAUgrpc_channel@@@Z) >>> 1>C:\Users\johnc\main\dlmu\cadaemon-0339.1\win32\cadaemon\x64\Debug\cadaemon.exe >>> >>> : fatal error LNK1120: 10 unresolved externals >>> >>> >>> >>> On Tuesday, July 12, 2016 at 7:02:45 PM UTC-4, Nicolas Noble wrote: >>>> >>>> Not really - these are fairly standard symbols, and shouldn't go >>>> missing. I can't help but notice that you are building from an existing >>>> build though. Did you, well, try cleaning all and rebuilding all ? If >>>> their >>>> signature changed between the builds, and your VS didn't pick up the >>>> change >>>> and rebuild the necessary parts, that'd do it. >>>> >>>> On Monday, July 11, 2016 at 12:47:33 PM UTC-7, John Coffey wrote: >>>>> >>>>> I'm getting the following linker errors recently (master branch) on >>>>> windows, I do not get these in release-0_15_1. I wonder if anyone could >>>>> shed light on what the source of this error might be. I suspect that it >>>>> has >>>>> something to do with the libraries that I am linking with >>>>> post release-0_15_1 (I did not change these but I did notice that a new >>>>> grpc++reflection.lib was added. >>>>> >>>>> I am linking to the following grpc/protocol buffer libraries >>>>> >>>>> libprotobufd.lib >>>>> gpr.lib >>>>> grpc.lib >>>>> grpc_unsecure.lib >>>>> grpc++.lib >>>>> grpc++_unsecure.lib >>>>> z.lib >>>>> >>>>> Any ideas >>>>> >>>>> John >>>>> >>>>> These are the linker errors on in my client >>>>> >>>>> 1> LINK : C:\main\dlmu\cacli-0339.1\win32\cacli\x64\Debug\cacli.exe >>>>> not found or not built by the last incremental link; performing full link >>>>> 1>grpc++_unsecure.lib(insecure_credentials.obj) : error LNK2019: >>>>> unresolved external symbol "public: __cdecl >>>>> grpc::ChannelCredentials::ChannelCredentials(void)" >>>>> (??0ChannelCredentials@grpc@@QEAA@XZ) referenced in function "public: >>>>> __cdecl grpc::`anonymous >>>>> namespace'::InsecureChannelCredentialsImpl::InsecureChannelCredentialsImpl(void)" >>>>> >>>>> (??0InsecureChannelCredentialsImpl@?A0x568c5687@grpc@@QEAA@XZ) >>>>> 1>grpc++_unsecure.lib(insecure_credentials.obj) : error LNK2019: >>>>> unresolved external symbol "public: virtual __cdecl >>>>> grpc::ChannelCredentials::~ChannelCredentials(void)" >>>>> (??1ChannelCredentials@grpc@@UEAA@XZ) referenced in function "public: >>>>> virtual __cdecl grpc::`anonymous >>>>> namespace'::InsecureChannelCredentialsImpl::~InsecureChannelCredentialsImpl(void)" >>>>> >>>>> (??1InsecureChannelCredentialsImpl@?A0x568c5687@grpc@@UEAA@XZ) >>>>> 1>grpc++_unsecure.lib(create_channel_internal.obj) : error LNK2019: >>>>> unresolved external symbol "public: virtual __cdecl >>>>> grpc::Channel::~Channel(void)" (??1Channel@grpc@@UEAA@XZ) referenced in >>>>> function "public: virtual void * __cdecl grpc::Channel::`scalar deleting >>>>> destructor'(unsigned int)" (??_GChannel@grpc@@UEAAPEAXI@Z) >>>>> 1>grpc++_unsecure.lib(create_channel_internal.obj) : error LNK2019: >>>>> unresolved external symbol "private: __cdecl grpc::Channel::Channel(class >>>>> std::basic_string<char,struct std::char_traits<char>,class >>>>> std::allocator<char> > const &,struct grpc_channel *)" >>>>> (??0Channel@grpc@@AEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAUgrpc_channel@@@Z) >>>>> >>>>> referenced in function "class std::shared_ptr<class grpc::Channel> >>>>> __cdecl >>>>> grpc::CreateChannelInternal(class std::basic_string<char,struct >>>>> std::char_traits<char>,class std::allocator<char> > const &,struct >>>>> grpc_channel *)" >>>>> (?CreateChannelInternal@grpc@@YA?AV?$shared_ptr@VChannel@grpc@@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@PEAUgrpc_channel@@@Z) >>>>> 1>C:\main\dlmu\cacli-0339.1\win32\cacli\x64\Debug\cacli.exe : fatal >>>>> error LNK1120: 4 unresolved externals >>>>> >>>>> >>>>> >>>>> These are the linker errors on in my server >>>>> >>>>> 1>------ Build started: Project: cadaemon, Configuration: Debug x64 >>>>> ------ >>>>> 1>main.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to >>>>> '/OPT:LBR' specification >>>>> 1>ca.lib(CADaemon.obj) : error LNK2019: unresolved external symbol >>>>> "public: virtual __cdecl grpc::Server::~Server(void)" >>>>> (??1Server@grpc@@UEAA@XZ) referenced in function "public: virtual void * >>>>> __cdecl grpc::Server::`scalar deleting destructor'(unsigned int)" >>>>> (??_GServer@grpc@@UEAAPEAXI@Z) >>>>> 1>grpc++.lib(server_builder.obj) : error LNK2001: unresolved external >>>>> symbol "public: virtual __cdecl grpc::Server::~Server(void)" >>>>> (??1Server@grpc@@UEAA@XZ) >>>>> 1>ca.lib(CADaemon.obj) : error LNK2019: unresolved external symbol >>>>> "public: virtual void __cdecl grpc::Server::Wait(void)" >>>>> (?Wait@Server@grpc@@UEAAXXZ) referenced in function "private: void >>>>> __cdecl >>>>> CADaemon::grpcService(class std::basic_string<char,struct >>>>> std::char_traits<char>,class std::allocator<char> > const &)" >>>>> (?grpcService@CADaemon@@AEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) >>>>> 1>grpc++.lib(insecure_credentials.obj) : error LNK2019: unresolved >>>>> external symbol "public: __cdecl >>>>> grpc::ChannelCredentials::ChannelCredentials(void)" >>>>> (??0ChannelCredentials@grpc@@QEAA@XZ) referenced in function "public: >>>>> __cdecl grpc::`anonymous >>>>> namespace'::InsecureChannelCredentialsImpl::InsecureChannelCredentialsImpl(void)" >>>>> >>>>> (??0InsecureChannelCredentialsImpl@?A0x568c5687@grpc@@QEAA@XZ) >>>>> 1>grpc++.lib(insecure_credentials.obj) : error LNK2019: unresolved >>>>> external symbol "public: virtual __cdecl >>>>> grpc::ChannelCredentials::~ChannelCredentials(void)" >>>>> (??1ChannelCredentials@grpc@@UEAA@XZ) referenced in function "public: >>>>> virtual __cdecl grpc::`anonymous >>>>> namespace'::InsecureChannelCredentialsImpl::~InsecureChannelCredentialsImpl(void)" >>>>> >>>>> (??1InsecureChannelCredentialsImpl@?A0x568c5687@grpc@@UEAA@XZ) >>>>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>>>> symbol "private: __cdecl grpc::Server::Server(class >>>>> grpc::ThreadPoolInterface *,bool,int,class grpc::ChannelArguments *)" >>>>> (??0Server@grpc@@AEAA@PEAVThreadPoolInterface@1@_NHPEAVChannelArguments@1@@Z) >>>>> >>>>> referenced in function "public: class std::unique_ptr<class >>>>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>>>> grpc::ServerBuilder::BuildAndStart(void)" >>>>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>>>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>>>> symbol "private: virtual bool __cdecl grpc::Server::RegisterService(class >>>>> std::basic_string<char,struct std::char_traits<char>,class >>>>> std::allocator<char> > const *,class grpc::Service *)" >>>>> (?RegisterService@Server@grpc@@EEAA_NPEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVService@2@@Z) >>>>> >>>>> referenced in function "public: class std::unique_ptr<class >>>>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>>>> grpc::ServerBuilder::BuildAndStart(void)" >>>>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>>>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>>>> symbol "private: virtual void __cdecl >>>>> grpc::Server::RegisterAsyncGenericService(class grpc::AsyncGenericService >>>>> *)" >>>>> (?RegisterAsyncGenericService@Server@grpc@@EEAAXPEAVAsyncGenericService@2@@Z) >>>>> >>>>> referenced in function "public: class std::unique_ptr<class >>>>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>>>> grpc::ServerBuilder::BuildAndStart(void)" >>>>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>>>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>>>> symbol "private: virtual int __cdecl grpc::Server::AddListeningPort(class >>>>> std::basic_string<char,struct std::char_traits<char>,class >>>>> std::allocator<char> > const &,class grpc::ServerCredentials *)" >>>>> (?AddListeningPort@Server@grpc@@EEAAHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAVServerCredentials@2@@Z) >>>>> >>>>> referenced in function "public: class std::unique_ptr<class >>>>> grpc::Server,struct std::default_delete<class grpc::Server> > __cdecl >>>>> grpc::ServerBuilder::BuildAndStart(void)" >>>>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>>>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>>>> symbol "private: virtual bool __cdecl grpc::Server::Start(class >>>>> grpc::ServerCompletionQueue * *,unsigned __int64)" >>>>> (?Start@Server@grpc@@EEAA_NPEAPEAVServerCompletionQueue@2@_K@Z) >>>>> referenced >>>>> in function "public: class std::unique_ptr<class grpc::Server,struct >>>>> std::default_delete<class grpc::Server> > __cdecl >>>>> grpc::ServerBuilder::BuildAndStart(void)" >>>>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>>>> 1>grpc++.lib(server_builder.obj) : error LNK2019: unresolved external >>>>> symbol "private: class grpc::ServerInitializer * __cdecl >>>>> grpc::Server::initializer(void)" >>>>> (?initializer@Server@grpc@@AEAAPEAVServerInitializer@2@XZ) referenced in >>>>> function "public: class std::unique_ptr<class grpc::Server,struct >>>>> std::default_delete<class grpc::Server> > __cdecl >>>>> grpc::ServerBuilder::BuildAndStart(void)" >>>>> (?BuildAndStart@ServerBuilder@grpc@@QEAA?AV?$unique_ptr@VServer@grpc@@U?$default_delete@VServer@grpc@@@std@@@std@@XZ) >>>>> 1>grpc++.lib(create_channel_internal.obj) : error LNK2019: unresolved >>>>> external symbol "public: virtual __cdecl grpc::Channel::~Channel(void)" >>>>> (??1Channel@grpc@@UEAA@XZ) referenced in function "public: virtual void * >>>>> __cdecl grpc::Channel::`scalar deleting destructor'(unsigned int)" >>>>> (??_GChannel@grpc@@UEAAPEAXI@Z) >>>>> 1>grpc++.lib(create_channel_internal.obj) : error LNK2019: unresolved >>>>> external symbol "private: __cdecl grpc::Channel::Channel(class >>>>> std::basic_string<char,struct std::char_traits<char>,class >>>>> std::allocator<char> > const &,struct grpc_channel *)" >>>>> (??0Channel@grpc@@AEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAUgrpc_channel@@@Z) >>>>> >>>>> referenced in function "class std::shared_ptr<class grpc::Channel> >>>>> __cdecl >>>>> grpc::CreateChannelInternal(class std::basic_string<char,struct >>>>> std::char_traits<char>,class std::allocator<char> > const &,struct >>>>> grpc_channel *)" >>>>> (?CreateChannelInternal@grpc@@YA?AV?$shared_ptr@VChannel@grpc@@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@PEAUgrpc_channel@@@Z) >>>>> 1>C:\main\dlmu\cadaemon-0339.1\win32\cadaemon\x64\Debug\cadaemon.exe : >>>>> fatal error LNK1120: 12 unresolved externals >>>>> ========== Build: 0 succeeded, 1 failed, 3 up-to-date, 0 skipped >>>>> ========== >>>>> >>>>> -- 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 [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/5611e5e8-2437-4fc4-a965-4a1ef1d6992f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
