Hi,
At present application was built on solaris 9 using sun studio 9 (Sun C++ 5.6) & rouguewave sorce pro 5. We are planning to port the same application onto SuSE Linux 9.5.0 using GCC 3.3.3 & RW source pro 9. My application heavily uses RW tools through wrapper classes on the top existing RW classes. RW libraries were built using gcc on linux platform and standalong RW examples are working fine. Since the application compilation is moving from Sun CC to GCC, we have taken care all my application template classes declaration & its implementation. Code compiles perfectly but throws lot of linking errors with undefined reference. Most of these errors are pointing inside RW template classes or std:: classes. I am not sure whether i am missing something w.r.t roguewave during my compilation (like some RW macros). Does anyone have idea whats the underlying problem please. Here I am attaching part of linking errors...
linking option :
----------------
g++ -D_RWCONFIG_15dn2 -D_REENTRANT=1 -pthread -O3 -D__ORA_THREADS -fPIC -DRW_MULTI_THREAD -DCSTRING_MUTEX_COUNT=61 -DUSE_SPROC=0 -DUSE_PRIVATE_HEAPS=0 -Wno-deprecated -mcpu=x86-64 -L/usr/lib64 -L/lib64 -L/utils -L/main -L/usr/roguewave/RogueWave/SourcePro/native2/lib -I/usr/include -DSQLCA_NONE -DORACA_NONE -Dlint -fno-implicit-templates -D__DEBUG -DRW_CLASSIC_STRING_CLASSES -I/usr/roguewave/RogueWave/SourcePro/native2 -I/usr/roguewave/RogueWave/SourcePro/native2/lib -I/drivermodule -I/include -I/utils -I/eventhandler -I/todmodule -I/orderexecution -I/servicemodule -I/wsdlpull/src -I/dboracle/orabase/product/db/10.2.0.3_64bit/precomp/public -I/dboracle/orabase/product/db/10.2.0.3_64bit/rdbms/demo -I/dboracle/orabase/product/db/10.2.0.3_64bit/rdbms/public -I/dboracle/orabase/product/db/10.2.0.3_64bit/xdk/include -I/dboracle/orabase/product/db/10.2.0.3_64bit/xdk/demo/cpp/new/ -o main.exe main.cc ../utils/libutils.a ../orderexecution/liborderexecution.a ../wsdlpull/src/xmlpull/libxmlpull.a ../wsdlpull/src/schemaparser/libschema.a ../wsdlpull/src/wsdlparser/libwsdl.a ../servicemodule/libservicemodule.a ../eventhandlermodule/libeventhandler.a ../todmodule/libtodmodule.a -ldrivermodule -L/dboracle/orabase/product/db/10.2.0.3_64bit/lib -lclient10 -lsql10 -lntcp10 -ln10 -lnl10 -lnldap10 -lnhost10 -lntns10 -lnoname10 -lnus10 -lntcps10 -lnro10 -lnsslb10 -lcommon10 -lgeneric10 -lmm -lnls10 -lcore10 -lclntsh -lxml10 -lunls10 -ldl `cat /dboracle/orabase/product/db/10.2.0.3_64bit/lib/sysliblist` -lm -lfactory1415dn2 -lfunctor2315dn2 -lfunctor_list2315dn2 -lfunctor_map2315dn2 -li18n1415dn2 -litc2315dn2 -lpointer2515dn2 -lserial2015dn2 -lstreams1315dn2 -lsync2415dn2 -lthread2415dn2 -lthrexcept2315dn2 -ltls71015dn2 -ltrace2315dn2 -ltypes1315dn2 -lxmlabstractions1515dn2 -lxmlstreams1415dn2 -lpthread -lc -lrt -lnsl
Linking errors:
===============
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../x86_64-suse-linux/bin/ld: warning: libicudata.so.34, needed by /usr/roguewave/RogueWave/SourcePro/native2/lib/libi18n1415dn2.so, not found (try using -rpath or -rpath-link)
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../x86_64-suse-linux/bin/ld: warning: libicui18n.so.34, needed by /usr/roguewave/RogueWave/SourcePro/native2/lib/libi18n1415dn2.so, not found (try using -rpath or -rpath-link)
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/../../../../x86_64-suse-linux/bin/ld: warning: libicuuc.so.34, needed by /usr/roguewave/RogueWave/SourcePro/native2/lib/libi18n1415dn2.so, not found (try using -rpath or -rpath-link)
../utils/libutils.a(cexceptions.o)(.text+0x926): In function `DEBUG_STD_FUNC(unsigned long, GenString const&, int, CObjList<GenString>*)':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, GenString*>, std::_Select1st<std:air><GenString* const, GenString*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, GenString*> > >::find(GenString* const&)'
../utils/libutils.a(cexceptions.o)(.text+0x9b2): In function `DEBUG_STD_FUNC(unsigned long, GenString const&, int, CObjList<GenString>*)':
: undefined reference to `RWCTokenizer::RWCTokenizer[in-charge](RWClassicCString const&)'
../utils/libutils.a(genstring.o)(.text+0x19e2): In function `GenString::ExtractTagAndIndex(int const&, GenString&, GenString&, GenString&, bool&, int&, bool&, unsigned long&)':
: undefined reference to `RWCRegexp::RWCRegexp[in-charge](RWClassicCString const&)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN16CMapStringToListI9GenStringE6HelperEPKS0_RP8CO bjListIS0_EPv+0x8): In function `CMapStringToList<GenString>::Helper(GenString const*, CObjList<GenString>*&, void*)':
: undefined reference to `RW_PSeq<rw_slist><GenString*, std::allocator><GenString*> >, RWTPtrSlist<GenString, std::allocator><GenString*> >, GenString>::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringEC2Ev+0x5): In function `CObjList<GenString>::CObjList[not-in-charge]()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::rw_slist[not-in-charge]()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringEC1Ev+0x5): In function `CObjList<GenString>::CObjList[in-charge]()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::rw_slist[not-in-charge]()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringED2Ev+0x12): In function `CObjList<GenString>::~CObjList [not-in-charge]()':
: undefined reference to `RW_PSeq<rw_slist><GenString*, std::allocator><GenString*> >, RWTPtrSlist<GenString, std::allocator><GenString*> >, GenString>::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringED2Ev+0x1a): In function `CObjList<GenString>::~CObjList [not-in-charge]()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::~rw_slist [not-in-charge]()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringED2Ev+0x37): In function `CObjList<GenString>::~CObjList [not-in-charge]()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::~rw_slist [not-in-charge]()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringED1Ev+0x12): In function `CObjList<GenString>::~CObjList [in-charge]()':
: undefined reference to `RW_PSeq<rw_slist><GenString*, std::allocator><GenString*> >, RWTPtrSlist<GenString, std::allocator><GenString*> >, GenString>::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringED1Ev+0x1a): In function `CObjList<GenString>::~CObjList [in-charge]()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::~rw_slist [not-in-charge]()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringED1Ev+0x37): In function `CObjList<GenString>::~CObjList [in-charge]()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::~rw_slist [not-in-charge]()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI9GenStringEED1Ev+0x2 1): In function `CMapStringToObj<CObjList><GenString> >::~CMapStringToObj [in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, CObjList><GenString>*, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, RWTPtrMap<GenString, CObjList><GenString>, std::less<GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, GenString, CObjList<GenString>, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI9GenStringEED1Ev+0xa 2): In function `CMapStringToObj<CObjList><GenString> >::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><GenString>*>, std::_Select1st<std:air><GenString* const, CObjList><GenString>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><GenString>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI9GenStringEED1Ev+0x1 50): In function `CMapStringToObj<CObjList><GenString> >::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><GenString>*>, std::_Select1st<std:air><GenString* const, CObjList><GenString>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><GenString>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI9GenStringEED2Ev+0x2 1): In function `CMapStringToObj<CObjList><GenString> >::~CMapStringToObj [not-in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, CObjList><GenString>*, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, RWTPtrMap<GenString, CObjList><GenString>, std::less<GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, GenString, CObjList<GenString>, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI9GenStringEED2Ev+0xa 2): In function `CMapStringToObj<CObjList><GenString> >::~CMapStringToObj [not-in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><GenString>*>, std::_Select1st<std:air><GenString* const, CObjList><GenString>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><GenString>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI9GenStringEED2Ev+0x1 50): In function `CMapStringToObj<CObjList><GenString> >::~CMapStringToObj [not-in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><GenString>*>, std::_Select1st<std:air><GenString* const, CObjList><GenString>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><GenString>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN16CMapStringToListI9GenStringED1Ev+0xb4): In function `CMapStringToList<GenString>::~CMapStringToList [in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, CObjList><GenString>*, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, RWTPtrMap<GenString, CObjList><GenString>, std::less<GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, GenString, CObjList<GenString>, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN16CMapStringToListI9GenStringED2Ev+0xb4): In function `CMapStringToList<GenString>::~CMapStringToList [not-in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, CObjList><GenString>*, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, RWTPtrMap<GenString, CObjList><GenString>, std::less<GenString>, std::allocator<std:air><GenString* const, CObjList><GenString>*> > >, GenString, CObjList<GenString>, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI9GenStringED1Ev+0x21): In function `CMapStringToObj<GenString>::~CMapStringToObj [in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, GenString*, rw_deref_compare><std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, GenString*> > >, RWTPtrMap<GenString, GenString, std::less><GenString>, std::allocator<std:air><GenString* const, GenString*> > >, GenString, GenString, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI9GenStringED1Ev+0xa2): In function `CMapStringToObj<GenString>::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, GenString*>, std::_Select1st<std:air><GenString* const, GenString*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, GenString*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, GenString*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI9GenStringED1Ev+0x150): In function `CMapStringToObj<GenString>::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, GenString*>, std::_Select1st<std:air><GenString* const, GenString*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, GenString*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, GenString*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI9GenStringED2Ev+0x150): In function `CMapStringToObj<GenString>::~CMapStringToObj [not-in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, GenString*>, std::_Select1st<std:air><GenString* const, GenString*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, GenString*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, GenString*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8XMLArrayED1Ev+0x21): In function `CMapStringToObj<XMLArray>::~CMapStringToObj [in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, XMLArray*, rw_deref_compare><std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >, RWTPtrMap<GenString, XMLArray, std::less><GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >, GenString, XMLArray, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8XMLArrayED1Ev+0xa2): In function `CMapStringToObj<XMLArray>::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, XMLArray*>, std::_Select1st<std:air><GenString* const, XMLArray*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, XMLArray*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8XMLArrayED1Ev+0x150): In function `CMapStringToObj<XMLArray>::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, XMLArray*>, std::_Select1st<std:air><GenString* const, XMLArray*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, XMLArray*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8XMLArrayED2Ev+0x21): In function `CMapStringToObj<XMLArray>::~CMapStringToObj [not-in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, XMLArray*, rw_deref_compare><std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >, RWTPtrMap<GenString, XMLArray, std::less><GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >, GenString, XMLArray, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8XMLArrayED2Ev+0xa2): In function `CMapStringToObj<XMLArray>::~CMapStringToObj [not-in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, XMLArray*>, std::_Select1st<std:air><GenString* const, XMLArray*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, XMLArray*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8XMLArrayED2Ev+0x150): In function `CMapStringToObj<XMLArray>::~CMapStringToObj [not-in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, XMLArray*>, std::_Select1st<std:air><GenString* const, XMLArray*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, XMLArray*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, XMLArray*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI8XMLArrayEED1Ev+0x21 ): In function `CMapStringToObj<CObjList><XMLArray> >::~CMapStringToObj [in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, CObjList><XMLArray>*, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >, RWTPtrMap<GenString, CObjList><XMLArray>, std::less<GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >, GenString, CObjList<XMLArray>, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI8XMLArrayEED1Ev+0xa2 ): In function `CMapStringToObj<CObjList><XMLArray> >::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><XMLArray>*>, std::_Select1st<std:air><GenString* const, CObjList><XMLArray>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><XMLArray>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI8XMLArrayEED1Ev+0x15 0): In function `CMapStringToObj<CObjList><XMLArray> >::~CMapStringToObj [in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><XMLArray>*>, std::_Select1st<std:air><GenString* const, CObjList><XMLArray>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><XMLArray>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI8XMLArrayEED2Ev+0x21 ): In function `CMapStringToObj<CObjList><XMLArray> >::~CMapStringToObj [not-in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, CObjList><XMLArray>*, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >, RWTPtrMap<GenString, CObjList><XMLArray>, std::less<GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >, GenString, CObjList<XMLArray>, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI8XMLArrayEED2Ev+0xa2 ): In function `CMapStringToObj<CObjList><XMLArray> >::~CMapStringToObj [not-in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><XMLArray>*>, std::_Select1st<std:air><GenString* const, CObjList><XMLArray>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><XMLArray>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI8XMLArrayEED2Ev+0x15 0): In function `CMapStringToObj<CObjList><XMLArray> >::~CMapStringToObj [not-in-charge]()':
: undefined reference to `std::_Rb_tree<GenString*, std:air><GenString* const, CObjList><XMLArray>*>, std::_Select1st<std:air><GenString* const, CObjList><XMLArray>*> >, rw_deref_compare<std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, CObjList><XMLArray>*> > >::_M_erase(std::_Rb_tree_node<std:air><GenStrin g* const, CObjList><XMLArray>*> >*)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN15CMapStringToObjI8CObjListI8XMLArrayEE5PrintEv+ 0xaa): In function `CMapStringToObj<CObjList><XMLArray> >::Print()':
: undefined reference to `CObjList<XMLArray>::Print()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE8PrintDrvEv+0x45): In function `CObjList<GenString>::PrintDrv()':
: undefined reference to `RWTPtrSlistIterator<GenString, std::allocator><GenString*> >::operator++()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE8PrintDrvEv+0xac): In function `CObjList<GenString>::PrintDrv()':
: undefined reference to `RWTPtrSlistIterator<GenString, std::allocator><GenString*> >::operator++()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE5PrintEv+0x34): In function `CObjList<GenString>::Print()':
: undefined reference to `RWTPtrSlistIterator<GenString, std::allocator><GenString*> >::operator++()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE5PrintEv+0x79): In function `CObjList<GenString>::Print()':
: undefined reference to `RWTPtrSlistIterator<GenString, std::allocator><GenString*> >::operator++()'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE4SortEv+0x176): In function `CObjList<GenString>::Sort()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::erase(rw_slist<GenString*, std::allocator><GenString*> >::Iterator)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE4SortEv+0x1da): In function `CObjList<GenString>::Sort()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::erase(rw_slist<GenString*, std::allocator><GenString*> >::Iterator)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE4SortEv+0x25b): In function `CObjList<GenString>::Sort()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::insert(rw_slist<GenString*, std::allocator><GenString*> >::Iterator, GenString* const&)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN8CObjListI9GenStringE4SortEv+0x2e4): In function `CObjList<GenString>::Sort()':
: undefined reference to `rw_slist<GenString*, std::allocator><GenString*> >::insert(rw_slist<GenString*, std::allocator><GenString*> >::Iterator, GenString* const&)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN14RWTThreadLocalIiE9createKeyEv+0x129): In function `RWTThreadLocal<int>::createKey()':
: undefined reference to `RWTHRResourceLimit::RWTHRResourceLimit[in-charge](RWClassicCString const&)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN14RWTThreadLocalIiE9createKeyEv+0x192): In function `RWTThreadLocal<int>::createKey()':
: undefined reference to `RWTHRResourceLimit::RWTHRResourceLimit[in-charge](RWClassicCString const&)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN14RWTThreadLocalIiE3setEPv+0xf2): In function `RWTThreadLocal<int>::set(void*)':
: undefined reference to `RWTHRResourceLimit::RWTHRResourceLimit[in-charge](RWClassicCString const&)'
../utils/libutils.a(osdtemplateinstant.o)(.gnu.linkonce.t._ ZN14RWTThreadLocalIiE8setValueERKi+0x51): In function `RWTThreadLocal<int>::setValue(int const&)':
: undefined reference to `vtable for RWTTLD<int>'
../utils/libutils.a(shareddatastore.o)(.text+0x22c): In function `XMLArray::~XMLArray [in-charge]()':
: undefined reference to `RW_PMapAssoc<std::map><GenString*, GenString*, rw_deref_compare><std::less><GenString>, GenString>, std::allocator<std:air><GenString* const, GenString*> > >, RWTPtrMap<GenString, GenString, std::less><GenString>, std::allocator<std:air><GenString* const, GenString*> > >, GenString, GenString, std::less<GenString> >::clearAndDestroy()'
../utils/libutils.a(shareddatastore.o)(.text+0x234): In function `XMLArray::~XMLArray [in-charge]()':
: undefined reference to `RW_PSeq<rw_slist><GenString*, std::allocator><GenString*> >, RWTPtrSlist<GenString, std::allocator><GenString*> >, GenString>::clearAndDestroy()'
Thanks
Raju