cosmin.cremare...@gmail.com wrote: > I'm using libtool v2.2.6 > > To make sure that protobuf always links to stlport I added CXXFLAGS="- > library=stlport4" to the configure command.
Well... you shouldn't need to do that, we're forcing that on in configure anyway. :) > At the end I get the same linking errors. > Is the below warning from ld meaningful? > ld: warning: file /src/work/mw/protobuf-2.0.3-sunstudio11/src/.libs/ > libprotobuf.so: linked to ./.libs/libprotobuf.so: attempted multiple > inclusion of file Don't think so - I'm going to go recompile and see if I can reproduce. > Regards, > > Cosmin > > On May 19, 10:14 pm, Monty Taylor <mord...@inaugust.com> wrote: >> cosmin.cremare...@gmail.com wrote: >>> Hi >>> I'm running into some issues when compiling (more exactly linking) >>> protobuf 2.0.3. >>> Thanks in advance for any help. >>> Cosmin >>> CXX=/nettools/sunstudio/sunstudio11/SUNWspro/bin/CC CC=/nettools/ >>> sunstudio/sunstudio11/SUNWspro/bin/cc ./configure --prefix=/src/work/ >>> mw/protobuf-2.0.3-sunstudio11-build LDFLAGS=-L$PWD/src/solaris >>> bash$ uname -a >>> SunOS pegasus 5.10 Generic_118855-33 i86pc i386 i86pc >>> pegasus ccremarenco /src/work/mw/protobuf-2.0.3-sunstudio11/ >>> bash$ CC -V >>> CC: Sun C++ 5.8 Patch 121018-11 2007/05/02 >> Well... it looks fine on the surface - but there may have been a problem >> further back in your build histoy. Are there any references to -Cstd in >> there? If so, you need to install libtool 2.2 and then re-run autogen.sh >> (older libtools do bad things on solaris) But I don't remember having >> had to do that last time I built. >> >>> /bin/bash ../libtool --tag=CXX --mode=link /nettools/sunstudio/ >>> sunstudio11/SUNWspro/bin/CC -D_REENTRANT -g -xO4 -xlibmil -mt - >>> D_FORTEC_ -xlang=c99 -compat=5 -library=stlport4 -template=no%extdef - >>> D_REENTRANT -L/src/work/mw/protobuf-2.0.3-sunstudio11/src/solaris -o >>> protoc main.o -lpthread libprotobuf.la libprotoc.la >>> libtool: link: /nettools/sunstudio/sunstudio11/SUNWspro/bin/CC - >>> D_REENTRANT -g -xO4 -xlibmil -mt -D_FORTEC_ -xlang=c99 -compat=5 - >>> template=no%extdef -D_REENTRANT -o .libs/protoc main.o -L/src/work/mw/ >>> protobuf-2.0.3-sunstudio11/src/solaris ./.libs/libprotobuf.so ./.libs/ >>> libprotoc.so /src/work/mw/protobuf-2.0.3-sunstudio11/src/.libs/ >>> libprotobuf.so -library=stlport4 -lpthread -mt -R/src/work/mw/ >>> protobuf-2.0.3-sunstudio11-build/lib >>> ld: warning: file /src/work/mw/protobuf-2.0.3-sunstudio11/src/.libs/ >>> libprotobuf.so: linked to ./.libs/libprotobuf.so: attempted multiple >>> inclusion of file >>> Undefined first referenced >>> symbol in file >>> std::pair<std::_Rb_tree_iterator<const >>> google::protobuf::Descriptor*,std::_Nonconst_traits<const >>> google::protobuf::Descriptor*> >,bool>std::_Rb_tree<const >>> google::protobuf::Descriptor*,const >>> google::protobuf::Descriptor*,std::_Identity<const >>> google::protobuf::Descriptor*>,std::less<const >>> google::protobuf::Descriptor*>,std::allocator<const >>> google::protobuf::Descriptor*> >::insert_unique(const >>> google::protobuf::Descriptor*const&) ./.libs/libprotobuf.so >>> unsigned std::hashtable<std::pair<const char*const,const >>> google::protobuf::FileDescriptor*>,const >>> char*,google::protobuf::hash<const >>> char*>,std::_Select1st<std::pair<const char*const,const >>> google::protobuf::FileDescriptor*> >>>> ,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std >>>> ::pair<const >>> char*const,const google::protobuf::FileDescriptor*> > >::erase(const >>> char*const&) ./.libs/libprotobuf.so >>> void std::_Rb_tree<std::string,std::pair<const >>> std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo >>> >,std::_Select1st<std::pair<const >>> std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo >>> > >>>> ,std::less<std::string>,std::allocator<std::pair<const >>> std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo >>> > >>>>> ::_M_erase(std::_Rb_tree_node<std::pair<const >>> std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo >>> > >>>> *) ./.libs/libprotoc.so >>> std::pair<std::_Rb_tree_iterator<const >>> google::protobuf::FileDescriptor*,std::_Nonconst_traits<const >>> google::protobuf::FileDescriptor*> >,bool>std::_Rb_tree<const >>> google::protobuf::FileDescriptor*,const >>> google::protobuf::FileDescriptor*,std::_Identity<const >>> google::protobuf::FileDescriptor*>,std::less<const >>> google::protobuf::FileDescriptor*>,std::allocator<const >>> google::protobuf::FileDescriptor*> >::insert_unique(const >>> google::protobuf::FileDescriptor*const&) ./.libs/libprotoc.so >>> void std::_Rb_tree<int,std::pair<const >>> int,google::protobuf::UnknownField*>,std::_Select1st<std::pair<const >>> int,google::protobuf::UnknownField*> >>>> ,std::less<int>,std::allocator<std::pair<const >>> int,google::protobuf::UnknownField*> > >::_M_erase >>> (std::_Rb_tree_node<std::pair<const >>> int,google::protobuf::UnknownField*> >*) ./.libs/libprotobuf.so >>> std::pair<std::_Ht_iterator<std::pair<const >>> google::protobuf::Descriptor*const,const >>> google::protobuf::Message*>,std::_Nonconst_traits<std::pair<const >>> google::protobuf::Descriptor*const,const google::protobuf::Message*> >>>> ,const google::protobuf::Descriptor*,google::protobuf::hash<const >>> google::protobuf::Descriptor*>,std::_Select1st<std::pair<const >>> google::protobuf::Descriptor*const,const google::protobuf::Message*> >>>> ,std::equal_to<const >>> google::protobuf::Descriptor*>,std::allocator<std::pair<const >>> google::protobuf::Descriptor*const,const google::protobuf::Message*> > >>>> ,bool>std::hashtable<std::pair<const >>> google::protobuf::Descriptor*const,const >>> google::protobuf::Message*>,const >>> google::protobuf::Descriptor*,google::protobuf::hash<const >>> google::protobuf::Descriptor*>,std::_Select1st<std::pair<const >>> google::protobuf::Descriptor*const,const google::protobuf::Message*> >>>> ,std::equal_to<const >>> google::protobuf::Descriptor*>,std::allocator<std::pair<const >>> google::protobuf::Descriptor*const,const google::protobuf::Message*> > >>>> ::insert_unique_noresize(const std::pair<const >>> google::protobuf::Descriptor*const,const >>> google::protobuf::Message*>&) ./.libs/libprotobuf.so >>> std::pair<std::_Ht_iterator<std::pair<const char*const,const >>> google::protobuf::FileDescriptor*>,std::_Nonconst_traits<std::pair<const >>> char*const,const google::protobuf::FileDescriptor*> >,const >>> char*,google::protobuf::hash<const >>> char*>,std::_Select1st<std::pair<const char*const,const >>> google::protobuf::FileDescriptor*> >>>> ,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std >>>> ::pair<const >>> char*const,const google::protobuf::FileDescriptor*> > >>>> ,bool>std::hashtable<std::pair<const char*const,const >>> google::protobuf::FileDescriptor*>,const >>> char*,google::protobuf::hash<const >>> char*>,std::_Select1st<std::pair<const char*const,const >>> google::protobuf::FileDescriptor*> >>>> ,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std >>>> ::pair<const >>> char*const,const google::protobuf::FileDescriptor*> > >>>> ::insert_unique_noresize(const std::pair<const char*const,const >>> google::protobuf::FileDescriptor*>&) ./.libs/libprotobuf.so >>> void std::_Rb_tree<std::string,std::pair<const >>> std::string,std::string>,std::_Select1st<std::pair<const >>> std::string,std::string> >>>> ,std::less<std::string>,std::allocator<std::pair<const >>> std::string,std::string> > >::_M_erase >>> (std::_Rb_tree_node<std::pair<const std::string,std::string> >>>> *) ./.libs/libprotobuf.so >>> void std::_Rb_tree<const google::protobuf::FileDescriptor*,const >>> google::protobuf::FileDescriptor*,std::_Identity<const >>> google::protobuf::FileDescriptor*>,std::less<const >>> google::protobuf::FileDescriptor*>,std::allocator<const >>> google::protobuf::FileDescriptor*> >::_M_erase >>> (std::_Rb_tree_node<const google::protobuf::FileDescriptor*>*) ./.libs/ >>> libprotoc.so >>> void std::_Rb_tree<const google::protobuf::Descriptor*,const >>> google::protobuf::Descriptor*,std::_Identity<const >>> google::protobuf::Descriptor*>,std::less<const >>> google::protobuf::Descriptor*>,std::allocator<const >>> google::protobuf::Descriptor*> >::_M_erase(std::_Rb_tree_node<const >>> google::protobuf::Descriptor*>*) ./.libs/libprotobuf.so >>> unsigned std::hashtable<std::pair<const std::pair<const >>> google::protobuf::Descriptor*,int>,const >>> google::protobuf::FieldDescriptor*>,std::pair<const >>> google::protobuf::Descriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGI >>> w::PointerIntegerPairHash<std::pair<const >>> google::protobuf::Descriptor*,int> >,std::_Select1st<std::pair<const >>> std::pair<const google::protobuf::Descriptor*,int>,const >>> google::protobuf::FieldDescriptor*> >,std::equal_to<std::pair<const >>> google::protobuf::Descriptor*,int> >,std::allocator<std::pair<const >>> std::pair<const google::protobuf::Descriptor*,int>,const >>> google::protobuf::FieldDescriptor*> > >::_M_next_size(unsigned) >>> const ./.libs/libprotobuf.so >>> void std::_Rb_tree<std::pair<std::string,int>,std::pair<const >>> std::pair<std::string,int>,const >>> google::protobuf::FileDescriptorProto*>,std::_Select1st<std::pair<const >>> std::pair<std::string,int>,const >>> google::protobuf::FileDescriptorProto*> >>>> ,std::less<std::pair<std::string,int> >>>> ,std::allocator<std::pair<const std::pair<std::string,int>,const >>> google::protobuf::FileDescriptorProto*> > >::_M_erase >>> (std::_Rb_tree_node<std::pair<const std::pair<std::string,int>,const >>> google::protobuf::FileDescriptorProto*> >*) ./.libs/libprotobuf.so >>> void std::hashtable<std::pair<const std::pair<const void*,const >>> char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,std::pair<const >>> void*,const >>> char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerStringPairHash,std >>> ::_Select1st<std::pair<const >>> std::pair<const void*,const >>> char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >>>> ,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerStringPairEqual,std::all >>>> ocator<std::pair<const >>> std::pair<const void*,const >>> char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::clear >>> () ./.libs/libprotobuf.so >>> std::_Rb_tree_iterator<std::pair<const >>> std::string,std::string>,std::_Nonconst_traits<std::pair<const >>> std::string,std::string> > >std::_Rb_tree<std::string,std::pair<const >>> std::string,std::string>,std::_Select1st<std::pair<const >>> std::string,std::string> >>>> ,std::less<std::string>,std::allocator<std::pair<const >>> std::string,std::string> > >::insert_unique >>> (std::_Rb_tree_iterator<std::pair<const >>> std::string,std::string>,std::_Nonconst_traits<std::pair<const >> ... >> >> read more ยป > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/protobuf?hl=en -~----------~----~----~----~------~----~------~--~---