HI Hesciong, Thanks for the note, I've added the export as well as extern.
Robert. 2008/8/30 sicong he <[EMAIL PROTECTED]>: > Hi, Robert: > I can't build the 8807 Revision due to some link error. The error message > is: > >> >> 7>ImageLayer.obj : error LNK2019: Unsoloved External Symbol "void __cdecl >> osgTerrain::extractSetNameAndFileName(class std::basic_string<char,struct >> std::char_traits<char>,class std::allocator<char> > const &,class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > &,class std::basic_string<char,struct >> std::char_traits<char>,class std::allocator<char> > &)" >> ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL >> PROTECTED]@2@@std@@[EMAIL PROTECTED]@Z),this >> symbol is referenced by "bool __cdecl ImageLayer_readLocalData(class >> osg::Object &,class osgDB::Input &)" >> (?ImageLayer_readLocalData@@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@@@Z) >> 7>HeightFieldLayer.obj : error LNK2001: Unsoloved External Symbol "void >> __cdecl osgTerrain::extractSetNameAndFileName(class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > const &,class std::basic_string<char,struct >> std::char_traits<char>,class std::allocator<char> > &,class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > &)" >> ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL >> PROTECTED]@2@@std@@[EMAIL PROTECTED]@Z) >> 7>CompositeLayer.obj : error LNK2001: Unsoloved External Symbol "void >> __cdecl osgTerrain::extractSetNameAndFileName(class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > const &,class std::basic_string<char,struct >> std::char_traits<char>,class std::allocator<char> > &,class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > &)" >> ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL >> PROTECTED]@2@@std@@[EMAIL PROTECTED]@Z) >> 7>ImageLayer.obj : error LNK2019: Unsoloved External Symbol "class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > __cdecl >> osgTerrain::createCompondSetNameAndFileName(class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > const &,class std::basic_string<char,struct >> std::char_traits<char>,class std::allocator<char> > const &)" >> ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL >> PROTECTED]@2@@std@@[EMAIL PROTECTED]@Z),this >> symbol is referenced by "bool __cdecl ImageLayer_writeLocalData(class >> osg::Object const &,class osgDB::Output &)" >> (?ImageLayer_writeLocalData@@[EMAIL PROTECTED]@@[EMAIL PROTECTED]@@@Z) >> 7>HeightFieldLayer.obj : error LNK2001: Unsoloved External Symbol "class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > __cdecl >> osgTerrain::createCompondSetNameAndFileName(class >> std::basic_string<char,struct std::char_traits<char>,class >> std::allocator<char> > const &,class std::basic_string<char,struct >> std::char_traits<char>,class std::allocator<char> > const &)" >> ([EMAIL PROTECTED]@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL >> PROTECTED]@2@@std@@[EMAIL PROTECTED]@Z) >> >> 7>E:\osg\solution\bin\RelWithDebInfo\..\osgPlugins-2.7.1\osgdb_osgterrain.dll >> : fatal error LNK1120: 2 unsolved commands >> > > By adding OSGTERRAIN_EXPORT to two functions in osgTerrain\Layer header > file: > >> >> /** Extact the setname and filename from a compound string in the from >> set:setname:filename". >> * Returns a setname of "" when non set:setname: entry is present.*/ >> void extractSetNameAndFileName(const std::string& compoundstring, >> std::string& setname, std::string& filename); >> /** Create a compound string in the form set:setname:filename, or just >> filename if setname is "".*/ >> std::string createCompondSetNameAndFileName(const std::string& setname, >> const std::string& filename); > > > As > >> >> /** Extact the setname and filename from a compound string in the from >> set:setname:filename". >> * Returns a setname of "" when non set:setname: entry is present.*/ >> OSGTERRAIN_EXPORT void extractSetNameAndFileName(const std::string& >> compoundstring, std::string& setname, std::string& filename); >> /** Create a compound string in the form set:setname:filename, or just >> filename if setname is "".*/ >> OSGTERRAIN_EXPORT std::string createCompondSetNameAndFileName(const >> std::string& setname, const std::string& filename); > > > can fix the problem. > > Hesicong > > _______________________________________________ > osg-submissions mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
