[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