I found the problem it was a silly mistake from my side. Instead of adding the generated .pb.cc file to the project I was directly including multiple .pb.cc files on to a single .cpp file(stdafx.cpp) causing multiple definition error for common global functions. Regards, Abilash.G
On Monday, November 13, 2017 at 12:22:47 PM UTC+5:30, Abilash Gopinath wrote: > > Hi Kenton, > > I am facing the same issue. In my case, I have multiple proto files > created under the same package. When I add more than one proto file from > the same package on to a project, each proto file is generating its own > .pb.cc and .h files and each generated file has the below two methods. I > need to include some of the generated .cc files to one of my projects which > causes multiple definitions of the single function. > > auto-generated functions causing "the function already has a body" issues > are > 1. protobuf_AssignDescriptorsOnce() > 2. protobuf_RegisterTypes(const ::std::string&) > > Any help would be much appreciated. > > Regards, > Abilash.G > > On Friday, April 2, 2010 at 1:02:29 AM UTC+5:30, Kenton Varda wrote: >> >> There shouldn't be any problem with omitting the package. The >> declarations in your error message should not be appearing more than once. >> I can't tell much from the error message. Can you investigate the >> generated code and see whether it is actually double-declaring these >> things? If so, please send us a sample. But my guess is that something is >> weird about your environment, e.g. maybe your build system likes to >> concatenate multiple source files and compile them at once (some build >> systems do this), which doesn't work in the presence of anonymous >> namespaces. >> >> On Mon, Mar 29, 2010 at 6:44 PM, Adam Schepis <[email protected]> >> wrote: >> >>> Having an error using code generated by protobuf (c++) version 2.2.0. >>> I include a bunch of generated .pb.cc files generated from .proto >>> files, none of which have packages defined. >>> >>> as a result i'm getting a bunch of strange errors: >>> Error 1 error C2086: 'google::protobuf::GoogleOnceType >>> `anonymous- >>> namespace'::protobuf_AssignDescriptors_once_' : redefinition h:\src >>> \project\trunk\src\trayicon\RegisterUserReq.pb.cc 57 TrayIcon >>> Error 2 error C2084: function 'void `anonymous- >>> namespace'::protobuf_AssignDescriptorsOnce(void)' already has a body >>> h: >>> \src\project\trunk\src\trayicon\RegisterUserReq.pb.cc 58 TrayIcon >>> Error 3 error C2084: function 'void `anonymous- >>> namespace'::protobuf_RegisterTypes(const std::string &)' already has a >>> body h:\src\project\trunk\src\trayicon\RegisterUserReq.pb.cc 63 >>> TrayIcon >>> Error 4 error C3861: 'protobuf_AssignDescriptorsOnce': >>> identifier not >>> found h:\src\project\trunk\src\trayicon\RegisterUserReq.pb.cc 64 >>> TrayIcon >>> Error 5 error C3861: 'protobuf_AssignDescriptorsOnce': >>> identifier not >>> found h:\src\project\trunk\src\trayicon\RegisterUserReq.pb.cc 112 >>> TrayIcon >>> >>> ...and the list goes on. >>> >>> My gut is telling me that this has something to do w/ the lack of >>> packages, but i dont want to add them to the .protos because there are >>> a lot of teams that depend on these .proto files and it would cause a >>> lot of code changes for them to have to start using the new namespace >>> in all the code where they use these messages. The other teams are >>> still using protobuf 2.0.3 which apparently doesnt have this problem. >>> >>> any solutions to this or am i stuck? >>> Thanks! >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Protocol Buffers" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/protobuf?hl=en. >>> >>> >> -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" 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]. Visit this group at https://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
