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. 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
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 -~----------~----~----~----~------~----~------~--~---