why dont u try something like this this is done with all headers #ifndef __HEADER_IDENTIFIER__ #define __HEADER_IDENTIFIER__
#include <iostream> // class definitions //function definitions #endif This would automatically take care of duplicacy. Maxim Yegorushkin wrote: > [EMAIL PROTECTED] wrote: > > > > No, the lack of inline caused it. > > Hmm, I wanted to say that I found out the error is caused by 'not using > > inline'. I missed that part and it works well for the small code. > > > > The real problem is that even after I declared the class functions as > > inline, and even after forcing it to alwasy be a inline function, it > > doesn't look like it becomes a inline function under the Mac OS X. > > > > template<class T> > > inline void __attribute__((always_inline)) > > SPtr<T>::createInstance(const char *classID, > > IBase *reserved) > > { > > > > This is an error message. > > > > ld: multiple definitions of symbol > > __ZN8oaCommon4SPtrIN12OpenAccess_46IPcellEE14createInstanceEPKcPNS_5IBaseE > > ../../lib/wafer/mac_osx_32/opt/oaDesignInst.pic.o definition of > > __ZN8oaCommon4SPtrIN12OpenAccess_46IPcellEE14createInstanceEPKcPNS_5IBaseE > > in section (__TEXT,__text) > > ../../lib/wafer/mac_osx_32/opt/oaFrame.pic.o definition of > > __ZN8oaCommon4SPtrIN12OpenAccess_46IPcellEE14createInstanceEPKcPNS_5IBaseE > > in section (__TEXT,__text) > > > > And this is the result for 'nm oaDesignInst.o'. oaDesignInst.o includes > > the SPtr class. > > > > U oaCommon::oaPlugInMgr::getPlugInMgr() > > U oaCommon::oaPlugInMgr::createInstance(char const*, > > oaCommon::IBase*, oaCommon::Guid const&, void**) > > U oaCommon::oaPlugInMgr::getClassFactory(char const*, > > oaCommon::Guid const&, void**) > > 00002128 T oaCommon::SPtr<OpenAccess_4::IPcell>::createInstance(char > > const*, oaCommon::IBase*) > > 00026848 S > > __ZN8oaCommon4SPtrIN12OpenAccess_46IPcellEE14createInstanceEPKcPNS_5IBaseE.eh > > > > Out of the two result, I see that the function is not inlined. > > It looks like the object files have not been rebuild after you changed > the function to be inline. _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus