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 /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_sWhGbsSnEKGIw::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::allocator<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 std::string,std::string> > >,const std::pair<const std::string,std::string>&) ./.libs/libprotobuf.so void std::sort<const google::protobuf::FieldDescriptor**,google::protobuf::internal::__unnamed_sWhGbzTnEKmDx::FieldNumberSorter> (__type_0,__type_0,__type_1) ./.libs/libprotobuf.so void std::sort<const google::protobuf::FieldDescriptor**,google::protobuf::compiler::cpp::__unnamed_sWhGbzUnEKmIA::FieldOrderingByNumber> (__type_0,__type_0,__type_1) ./.libs/libprotoc.so void std::_Rb_tree<int,std::pair<const int,google::protobuf::internal::ExtensionSet::Extension>,std::_Select1st<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension> >,std::less<int>,std::allocator<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension> > >::_M_erase (std::_Rb_tree_node<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension> >*) ./.libs/ libprotobuf.so std::_Rb_tree_iterator<std::pair<const int,google::protobuf::UnknownField*>,std::_Nonconst_traits<std::pair<const int,google::protobuf::UnknownField*> > >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*> > >::insert_unique (std::_Rb_tree_iterator<std::pair<const int,google::protobuf::UnknownField*>,std::_Nonconst_traits<std::pair<const int,google::protobuf::UnknownField*> > >,const std::pair<const int,google::protobuf::UnknownField*>&) ./.libs/libprotobuf.so unsigned std::hashtable<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*>,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Select1st<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> >,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> > >::_M_next_size (unsigned)const ./.libs/libprotobuf.so std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type>&std::hashtable<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type>,std::string,google::protobuf::hash<std::string>,std::_Select1st<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> >,std::equal_to<std::string>,std::allocator<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> > >::_M_insert (const std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type>&) ./.libs/ libprotobuf.so unsigned std::hashtable<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,const char*,google::protobuf::hash<const char*>,std::_Select1st<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::_M_next_size(unsigned)const ./.libs/libprotobuf.so void std::_Rb_tree<std::string,std::pair<const std::string,const google::protobuf::FileDescriptorProto*>,std::_Select1st<std::pair<const std::string,const google::protobuf::FileDescriptorProto*> >,std::less<std::string>,std::allocator<std::pair<const std::string,const google::protobuf::FileDescriptorProto*> > >::_M_erase (std::_Rb_tree_node<std::pair<const std::string,const google::protobuf::FileDescriptorProto*> >*) ./.libs/libprotobuf.so void std::vector<std::string *>::_M_fill_insert(std::string **,unsigned,std::string *const&) ./.libs/libprotobuf.so void 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_sWhGbsSnEKGIw::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*> > >::clear() ./.libs/ libprotobuf.so void std::hashtable<std::string,std::string,google::protobuf::hash<std::string>,std::_Identity<std::string>,std::equal_to<std::string>,std::allocator<std::string> >::clear() ./.libs/libprotobuf.so unsigned std::hashtable<std::string,std::string,google::protobuf::hash<std::string>,std::_Identity<std::string>,std::equal_to<std::string>,std::allocator<std::string> >::_M_next_size(unsigned)const ./.libs/libprotobuf.so std::pair<std::_Rb_tree_iterator<int,std::_Nonconst_traits<int> >,bool>std::_Rb_tree<int,int,std::_Identity<int>,std::less<int>,std::allocator<int> >::insert_unique(const int&) ./.libs/libprotoc.so void std::hashtable<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type>,std::string,google::protobuf::hash<std::string>,std::_Select1st<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> >,std::equal_to<std::string>,std::allocator<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> > >::_M_copy_from(const std::hashtable<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type>,std::string,google::protobuf::hash<std::string>,std::_Select1st<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> >,std::equal_to<std::string>,std::allocator<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> > >&) ./.libs/ libprotobuf.so void std::sort<const google::protobuf::FieldDescriptor**,google::protobuf::compiler::java::__unnamed_sWhGbTVnEKmCC::FieldOrderingByNumber> (__type_0,__type_0,__type_1) ./.libs/libprotoc.so std::_Rb_tree_iterator<std::pair<const std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo>,std::_Nonconst_traits<std::pair<const std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo> > >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> > >::insert_unique(std::_Rb_tree_iterator<std::pair<const std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo>,std::_Nonconst_traits<std::pair<const std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo> > >,const std::pair<const std::string,google::protobuf::compiler::CommandLineInterface::GeneratorInfo>&) ./.libs/ libprotoc.so std::pair<std::_Rb_tree_iterator<std::pair<const std::pair<std::string,int>,const google::protobuf::FileDescriptorProto*>,std::_Nonconst_traits<std::pair<const std::pair<std::string,int>,const google::protobuf::FileDescriptorProto*> > >,bool>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*> > >::insert_unique(const std::pair<const std::pair<std::string,int>,const google::protobuf::FileDescriptorProto*>&) ./.libs/libprotobuf.so std::_Hashtable_node<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> >*std::_Hashtable_iterator<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*>,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Select1st<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> >,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> > >::_M_skip_to_next () ./.libs/libprotobuf.so void std::_Rb_tree<int,int,std::_Identity<int>,std::less<int>,std::allocator<int> >::_M_erase(std::_Rb_tree_node<int>*) ./.libs/libprotoc.so std::pair<std::_Ht_iterator<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,std::_Nonconst_traits<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >,const char*,google::protobuf::hash<const char*>,std::_Select1st<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >,bool>std::hashtable<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,const char*,google::protobuf::hash<const char*>,std::_Select1st<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::insert_unique_noresize(const std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>&) ./.libs/ libprotobuf.so void std::hashtable<std::string,std::string,google::protobuf::hash<std::string>,std::_Identity<std::string>,std::equal_to<std::string>,std::allocator<std::string> >::_M_copy_from(const std::hashtable<std::string,std::string,google::protobuf::hash<std::string>,std::_Identity<std::string>,std::equal_to<std::string>,std::allocator<std::string> >&) ./.libs/libprotoc.so unsigned std::hashtable<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*>,std::pair<const google::protobuf::EnumDescriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerIntegerPairHash<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> >,std::equal_to<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::allocator<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> > >::erase(const std::pair<const google::protobuf::EnumDescriptor*,int>&) ./.libs/ libprotobuf.so std::pair<std::_Ht_iterator<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*>,std::_Nonconst_traits<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> >,std::pair<const google::protobuf::EnumDescriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerIntegerPairHash<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> >,std::equal_to<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::allocator<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> > >,bool>std::hashtable<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*>,std::pair<const google::protobuf::EnumDescriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerIntegerPairHash<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> >,std::equal_to<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::allocator<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> > >::insert_unique_noresize (const std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*>&) ./.libs/libprotobuf.so void std::sort<const google::protobuf::Descriptor::ExtensionRange**,google::protobuf::compiler::cpp::__unnamed_sWhGbzUnEKmIA::ExtensionRangeSorter> (__type_0,__type_0,__type_1) ./.libs/libprotoc.so void std::sort<const google::protobuf::Descriptor::ExtensionRange**,google::protobuf::compiler::java::__unnamed_sWhGbTVnEKmCC::ExtensionRangeOrdering> (__type_0,__type_0,__type_1) ./.libs/libprotoc.so void std::vector<google::protobuf::Message*>::_M_fill_insert (google::protobuf::Message**,unsigned,google::protobuf::Message*const&) ./.libs/ libprotobuf.so void std::hashtable<const google::protobuf::Descriptor*,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Identity<const google::protobuf::Descriptor*>,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<const google::protobuf::Descriptor*> >::clear() ./.libs/libprotoc.so std::pair<std::_Rb_tree_iterator<std::pair<const std::string,const google::protobuf::FileDescriptorProto*>,std::_Nonconst_traits<std::pair<const std::string,const google::protobuf::FileDescriptorProto*> > >,bool>std::_Rb_tree<std::string,std::pair<const std::string,const google::protobuf::FileDescriptorProto*>,std::_Select1st<std::pair<const std::string,const google::protobuf::FileDescriptorProto*> >,std::less<std::string>,std::allocator<std::pair<const std::string,const google::protobuf::FileDescriptorProto*> > >::insert_unique(const std::pair<const std::string,const google::protobuf::FileDescriptorProto*>&) ./.libs/libprotobuf.so unsigned std::hashtable<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*>,std::pair<const google::protobuf::EnumDescriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerIntegerPairHash<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> >,std::equal_to<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::allocator<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> > >::_M_next_size(unsigned) const ./.libs/libprotobuf.so void std::hashtable<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*>,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Select1st<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> >,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> > >::clear() ./.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::allocator<std::pair<const std::pair<const void*,const char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::resize (unsigned) ./.libs/libprotobuf.so unsigned std::hashtable<const google::protobuf::Descriptor*,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Identity<const google::protobuf::Descriptor*>,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<const google::protobuf::Descriptor*> >::_M_next_size(unsigned)const ./.libs/ libprotoc.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*> > >::_M_next_size (unsigned)const ./.libs/libprotobuf.so unsigned 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*> > >::_M_next_size(unsigned)const ./.libs/libprotobuf.so void std::_Rb_tree<std::string,std::string,std::_Identity<std::string>,std::less<std::string>,std::allocator<std::string> >::_M_erase(std::_Rb_tree_node<std::string>*) ./.libs/libprotobuf.so std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*>&std::hashtable<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*>,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Select1st<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> >,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*> > >::_M_insert(const std::pair<const google::protobuf::Descriptor*const,const google::protobuf::DynamicMessage::TypeInfo*>&) ./.libs/libprotobuf.so void 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*> > >::resize (unsigned) ./.libs/libprotobuf.so void std::hashtable<const google::protobuf::Descriptor*,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Identity<const google::protobuf::Descriptor*>,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<const google::protobuf::Descriptor*> >::resize(unsigned) ./.libs/ libprotoc.so void std::hashtable<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*>,std::pair<const google::protobuf::EnumDescriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerIntegerPairHash<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> >,std::equal_to<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::allocator<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> > >::clear() ./.libs/ libprotobuf.so std::_Rb_tree_iterator<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> >,std::_Nonconst_traits<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> > > >std::_Rb_tree<std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> > >,std::less<std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation> >,std::allocator<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> > > >::insert_unique(std::_Rb_tree_iterator<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> >,std::_Nonconst_traits<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> > > >,const std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> >&) ./.libs/libprotobuf.so std::basic_ostream<__type_0,__type_1>&std::operator<<<char,std::char_traits<char>,std::allocator<char> >(std::basic_ostream<__type_0,__type_1>&,const std::basic_string<__type_0,__type_1,__type_2>&) ./.libs/libprotoc.so void 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*> > >::clear() ./.libs/libprotobuf.so std::pair<std::_Ht_iterator<std::pair<const std::pair<const void*,const char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,std::_Nonconst_traits<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::allocator<std::pair<const std::pair<const void*,const char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >,bool>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::allocator<std::pair<const std::pair<const void*,const char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::insert_unique_noresize(const std::pair<const std::pair<const void*,const char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>&) ./.libs/ libprotobuf.so void std::hashtable<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,const char*,google::protobuf::hash<const char*>,std::_Select1st<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::resize(unsigned) ./.libs/libprotobuf.so std::pair<std::_Ht_iterator<std::string,std::_Nonconst_traits<std::string>,std::string,google::protobuf::hash<std::string>,std::_Identity<std::string>,std::equal_to<std::string>,std::allocator<std::string> >,bool>std::hashtable<std::string,std::string,google::protobuf::hash<std::string>,std::_Identity<std::string>,std::equal_to<std::string>,std::allocator<std::string> >::insert_unique_noresize(const std::string &) ./.libs/libprotobuf.so unsigned 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::allocator<std::pair<const std::pair<const void*,const char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::_M_next_size(unsigned)const ./.libs/libprotobuf.so void std::_Rb_tree<std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> > >,std::less<std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation> >,std::allocator<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> > > >::_M_erase(std::_Rb_tree_node<std::pair<const std::pair<const google::protobuf::Message*,google::protobuf::DescriptorPool::ErrorCollector::ErrorLocation>,std::pair<int,int> > >*) ./.libs/libprotobuf.so void 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*> > >::clear () ./.libs/libprotobuf.so void 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_sWhGbsSnEKGIw::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*> > >::resize(unsigned) ./.libs/ libprotobuf.so std::pair<std::_Rb_tree_iterator<std::string,std::_Nonconst_traits<std::string> >,bool>std::_Rb_tree<std::string,std::string,std::_Identity<std::string>,std::less<std::string>,std::allocator<std::string> >::insert_unique(const std::string &) ./.libs/libprotobuf.so void std::hashtable<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type>,std::string,google::protobuf::hash<std::string>,std::_Select1st<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> >,std::equal_to<std::string>,std::allocator<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> > >::clear () ./.libs/libprotobuf.so unsigned std::hashtable<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,const char*,google::protobuf::hash<const char*>,std::_Select1st<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::erase(const char*const&) ./.libs/libprotobuf.so unsigned 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::allocator<std::pair<const std::pair<const void*,const char*>,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::erase (const std::pair<const void*,const char*>&) ./.libs/libprotobuf.so std::pair<std::_Ht_iterator<const google::protobuf::Descriptor*,std::_Nonconst_traits<const google::protobuf::Descriptor*>,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Identity<const google::protobuf::Descriptor*>,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<const google::protobuf::Descriptor*> >,bool>std::hashtable<const google::protobuf::Descriptor*,const google::protobuf::Descriptor*,google::protobuf::hash<const google::protobuf::Descriptor*>,std::_Identity<const google::protobuf::Descriptor*>,std::equal_to<const google::protobuf::Descriptor*>,std::allocator<const google::protobuf::Descriptor*> >::insert_unique_noresize(const google::protobuf::Descriptor*const&) ./.libs/libprotoc.so void std::hashtable<std::string,std::string,google::protobuf::hash<std::string>,std::_Identity<std::string>,std::equal_to<std::string>,std::allocator<std::string> >::resize(unsigned) ./.libs/libprotobuf.so void std::hashtable<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol>,const char*,google::protobuf::hash<const char*>,std::_Select1st<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> >,google::protobuf::__unnamed_sWhGbsSnEKGIw::CStringEqual,std::allocator<std::pair<const char*const,google::protobuf::__unnamed_sWhGbsSnEKGIw::Symbol> > >::clear() ./.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_sWhGbsSnEKGIw::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*> > >::erase(const std::pair<const google::protobuf::Descriptor*,int>&) ./.libs/libprotobuf.so std::pair<std::_Ht_iterator<std::pair<const std::pair<const google::protobuf::Descriptor*,int>,const google::protobuf::FieldDescriptor*>,std::_Nonconst_traits<std::pair<const std::pair<const google::protobuf::Descriptor*,int>,const google::protobuf::FieldDescriptor*> >,std::pair<const google::protobuf::Descriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGIw::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*> > >,bool>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_sWhGbsSnEKGIw::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*> > >::insert_unique_noresize(const std::pair<const std::pair<const google::protobuf::Descriptor*,int>,const google::protobuf::FieldDescriptor*>&) ./.libs/libprotobuf.so std::_Rb_tree_iterator<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension>,std::_Nonconst_traits<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension> > >std::_Rb_tree<int,std::pair<const int,google::protobuf::internal::ExtensionSet::Extension>,std::_Select1st<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension> >,std::less<int>,std::allocator<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension> > >::insert_unique(std::_Rb_tree_iterator<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension>,std::_Nonconst_traits<std::pair<const int,google::protobuf::internal::ExtensionSet::Extension> > >,const std::pair<const int,google::protobuf::internal::ExtensionSet::Extension>&) ./.libs/ libprotobuf.so void 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*> > >::resize(unsigned) ./.libs/libprotobuf.so void std::hashtable<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*>,std::pair<const google::protobuf::EnumDescriptor*,int>,google::protobuf::__unnamed_sWhGbsSnEKGIw::PointerIntegerPairHash<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::_Select1st<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> >,std::equal_to<std::pair<const google::protobuf::EnumDescriptor*,int> >,std::allocator<std::pair<const std::pair<const google::protobuf::EnumDescriptor*,int>,const google::protobuf::EnumValueDescriptor*> > >::resize(unsigned) ./.libs/ libprotobuf.so unsigned std::hashtable<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type>,std::string,google::protobuf::hash<std::string>,std::_Select1st<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> >,std::equal_to<std::string>,std::allocator<std::pair<const std::string,google::protobuf::FieldDescriptorProto_Type> > >::_M_next_size(unsigned)const ./.libs/libprotobuf.so ld: fatal: Symbol referencing errors. No output written to .libs/ protoc --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---