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

Reply via email to