On Thu, Jan 14, 2016 at 4:48 AM, Dalong Cheng <[email protected]> wrote:
> I compiled protobuf with nmake in my win7 machine, using VS 12.0 tool > chain and nmake check show the result pass all the tests. I compiled with > -Dprotobuf_BUILD_SHARED_LIBS=ON. Everything seems fine, while, when I use > libprotobuf.lib and libprotobuf.dll in my own project (configured with > Release Win32 platform), it just prompt linking errors, I have added > #define PROTOBUF_USE_DLLS in code. I have really been working on this issue > for long time, still have no clues. Any message is really appreciate, > thanks! > It's likely that you missed some flags in your project configuration. Try to copy the flags used in the tests project to your project. > > ========Full Error Message Below ================ > Error 11 error LNK2001: unresolved external symbol "int > google::protobuf::internal::empty_string_once_init_" > (?empty_string_once_init_@internal@protobuf@google@@3HA) > C:\hydra\CatsTradeMktUpdt\CatsMktUpdt\ProtoBufMsg.pb.obj CatsMktUpdt > Error 12 error LNK2001: unresolved external symbol "class > std::basic_string<char,struct std::char_traits<char>,class > std::allocator<char> > const * const > google::protobuf::internal::empty_string_" (?empty_string_@internal > @protobuf@google@@3PBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D > @2@@std@@B) C:\hydra\CatsTradeMktUpdt\CatsMktUpdt\ProtoBufMsg.pb.obj > CatsMktUpdt > Error 13 error LNK1120: 2 unresolved externals > C:\hydra\CatsTradeMktUpdt\Release_bin\CatsMktUpdt.exe CatsMktUpdt > > > ========Full Warning Message Below ================== > Warning 3 warning C4251: > 'google::protobuf::internal::LogMessage::message_' : class > 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' needs > to have dll-interface to be used by clients of class > 'google::protobuf::internal::LogMessage' > C:\hydra\CatsTradeMktUpdt\include\google\protobuf\stubs\logging.h 100 1 > CatsMktUpdt > Warning 4 warning C4251: > 'google::protobuf::Arena::lifecycle_id_generator_' : class > 'google::protobuf::internal::SequenceNumber' needs to have dll-interface to > be used by clients of class 'google::protobuf::Arena' > C:\hydra\CatsTradeMktUpdt\include\google\protobuf\arena.h 545 1 > CatsMktUpdt > Warning 5 warning C4251: 'google::protobuf::Arena::options_' : struct > 'google::protobuf::ArenaOptions' needs to have dll-interface to be used by > clients of class 'google::protobuf::Arena' > C:\hydra\CatsTradeMktUpdt\include\google\protobuf\arena.h 904 1 > CatsMktUpdt > Warning 6 warning C4251: 'google::protobuf::DescriptorPool::tables_' : > class > 'google::protobuf::internal::scoped_ptr<google::protobuf::DescriptorPool::Tables>' > needs to have dll-interface to be used by clients of class > 'google::protobuf::DescriptorPool' > C:\hydra\CatsTradeMktUpdt\include\google\protobuf\descriptor.h 1594 1 > CatsMktUpdt > Warning 7 warning C4251: > 'google::protobuf::DescriptorPool::unused_import_track_files_' : class > 'std::set<std::string,std::less<_Kty>,std::allocator<_Ty>>' needs to have > dll-interface to be used by clients of class > 'google::protobuf::DescriptorPool' > C:\hydra\CatsTradeMktUpdt\include\google\protobuf\descriptor.h 1599 1 > CatsMktUpdt > Warning 8 warning C4251: > 'google::protobuf::internal::ExtensionSet::extensions_' : class > 'std::map<int,google::protobuf::internal::ExtensionSet::Extension,std::less<_Kty>,std::allocator<std::pair<const > _Kty,_Ty>>>' needs to have dll-interface to be used by clients of class > 'google::protobuf::internal::ExtensionSet' > C:\hydra\CatsTradeMktUpdt\include\google\protobuf\extension_set.h 611 1 > CatsMktUpdt > > > -- > 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. > -- 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.
