[sldev] Building (Snowglobe) on VC++2008 Express - boost okay, encoding problems, llmozlib hell?

Kakurady Drakenar kakurady at gmail.com
Thu Aug 20 06:16:36 PDT 2009


All right, I was trying to build Snowglobe with MSVC++2008 Express three 
times and failed three times.

The first time from the vanilla source provided by the Lab. Needless to 
say the Boost libraries didn't match. At linking stage I had errors like 
this:

    |12>libboost_program_options-vc80-mt-1_34_1.lib(cmdline.obj) : error
    LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class
    std::_String_iterator,class std::allocator > __thiscall
    std::basic_string,class std::allocator >::erase(class
    std::_String_iterator,class std::allocator >)"
    (__imp_?erase@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE?AV?$_String_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at V32@@Z),
    该符号在函数 "public: class std::vector,class std::allocator > >
    __thiscall
    boost::program_options::detail::cmdline::parse_short_option(class
    std::vector,class std::allocator >,class std::allocator,class
    std::allocator > > > &)"
    (?parse_short_option at cmdline@detail at program_options@boost@@QAE?AV?$vector at V?$basic_option at D@program_options at boost@@V?$allocator at V?$basic_option at D@program_options at boost@@@std@@@std@@AAV?$vector at V?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@V?$allocator at V?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@@2@@6@@Z)
    中被引用|

So instead of being stuck in a endless loop, the program won't link at all.

The second time I built my own Boost libs, but by mistake, instead of 
1.34.1 I used version 1.39.0. It didn't even compile.

    |12>------ 已启动生成: 项目: llui, 配置: RelWithDebInfo Win32 ------
    12>正在编译...
    12>llalertdialog.cpp
    9>llcommon.cpp
    9>llbase64.cpp
    9>llbase32.cpp
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(370) : error C2589: “(”: “::”右边的非法标记
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(370) : error C2059: 语法错误 : “::”
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(390) : error C2589: “(”: “::”右边的非法标记
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(390) : error C2059: 语法错误 : “::”
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(395) : error C2589: “(”: “::”右边的非法标记
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(395) : error C2059: 语法错误 : “::”
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(400) : error C2589: “(”: “::”右边的非法标记
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(400) : error C2059: 语法错误 : “::”
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(405) : error C2589: “(”: “::”右边的非法标记
    12>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\complex(405) : error C2059: 语法错误 : “::”|

The third time I got the 1.34.1 boost libs and in there are a couple of 
files that doesn't read in codepage 936. In addition to the one named in 
VWR-12427, utilities/enable_if.hpp, lexical_cast.hpp, tokenizer.hpp, the 
whole numeric/conversion/, a utf8_codecvt_facet.cpp and two 
utf8_codecvt_facet.hpp has to be converted to UTF-8. Then I built and 
placed the boost binaries by following instructions from 
http://wiki.secondlife.com/wiki/User:Jodiah_Jensen.

Everything went smoothly afterwards, except... fmod is not needed, but 
it's in the linker configs. Okay, remove that. Still doesn't work 
because llmozlib was built with VS2005:

    1>------ 已启动生成: 项目: secondlife-bin, 配置: Debug Win32 ------
    1>Setting the secondlife-bin working directory for debugging.
    1>Editing solution: C:/Users/Kakurady/dev/snowglobe/working/linden/indra/build-VC90/SecondLife.sln
    1>Looking for existing VisualStudio instance...
    1>   Didn't find open solution, starting new background VisualStudio instance...
    1>   Reading .sln file version...
    1>   Using version: VC90...
    1>值不能为空。
    1>参数名: type
    1>Quitting do to error opening: C:\Users\Kakurady\dev\snowglobe\working\linden\indra\build-VC90\SecondLife.sln
    1>Verifying message template
    1>master: http://secondlife.com/app/message_template/master_message_template.msg
    1>current: C:\Users\Kakurady\dev\snowglobe\working\linden\scripts\messages\message_template.msg
    1>--- PASS ---
    1>Older
    1>  in message DirPopularReply: is less deprecated: NotDeprecated vs. Deprecated in base
    1>  in message DirPopularQueryBackend: is less deprecated: NotDeprecated vs. Deprecated in base
    1>  in message ViewerStats: is less deprecated: NotDeprecated vs. UDPDeprecated in base
    1>  in message ChildAgentUpdate: missing 1 extra blocks
    1>  in message DirPopularQuery: is less deprecated: NotDeprecated vs. Deprecated in base
    1>  in message RequestParcelTransfer: missing 1 extra blocks
    1>
    1>C:\Users\Kakurady\dev\snowglobe\working\linden\indra\lib\python\indra\ipc\llmessage.py:29: DeprecationWarning: the sets module is deprecated
    1>   from sets import Set, ImmutableSet
    1>正在链接...
    1>    正在创建库 C:\Users\Kakurady\dev\snowglobe\working\linden\indra\build-VC90\newview\Debug\secondlife-bin.lib 和对象 C:\Users\Kakurady\dev\snowglobe\working\linden\indra\build-VC90\newview\Debug\secondlife-bin.exp
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_ParserFree 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_ErrorString 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_GetCurrentByteCount 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_GetCurrentByteIndex 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_GetCurrentColumnNumber 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_GetCurrentLineNumber 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_GetErrorCode 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_Parse 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_SetUserData 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_SetCharacterDataHandler 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_SetElementHandler 在函数 _xml_elem_parse_buf 中导入
    1>xmlrpcepi.lib(xml_element.obj) : warning LNK4217: 本地定义的符号 _XML_ParserCreate 在函数 _xml_elem_parse_buf 中导入
    1>llmozlib2d-vc80.lib(llmozlib2.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base at std@@QAE at XZ),该符号在函数 "public: __thiscall std::_Tmap_traits,class std::allocator  >,0>::~_Tmap_traits,class std::allocator  >,0>(void)" (??1?$_Tmap_traits at HPAVLLEmbeddedBrowserWindow@@U?$less at H@std@@V?$allocator at U?$pair@$$CBHPAVLLEmbeddedBrowserWindow@@@std@@@3@$0A@@std@@QAE at XZ) 中被引用
    1>llmozlib2d-vc80.lib(llembeddedbrowserwindow.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall std::_Container_base::~_Container_base(void)" (__imp_??1_Container_base at std@@QAE at XZ)
    1>llmozlib2d-vc80.lib(llmozlib2.obj) : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base at std@@QAE at XZ),该符号在函数 "public: __thiscall std::_Tmap_traits,class std::allocator  >,0>::_Tmap_traits,class std::allocator  >,0>(struct std::less)" (??0?$_Tmap_traits at HPAVLLEmbeddedBrowserWindow@@U?$less at H@std@@V?$allocator at U?$pair@$$CBHPAVLLEmbeddedBrowserWindow@@@std@@@3@$0A@@std@@QAE at U?$less at H@1@@Z) 中被引用
    1>llmozlib2d-vc80.lib(llembeddedbrowserwindow.obj) : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall std::_Container_base::_Container_base(void)" (__imp_??0_Container_base at std@@QAE at XZ)
    1>C:\Users\Kakurady\dev\snowglobe\working\linden\indra\build-VC90\newview\Debug\secondlife-bin.exe : fatal error LNK1120: 2 个无法解析的外部命令
    1>生成日志保存在“file://c:\Users\Kakurady\dev\snowglobe\working\linden\indra\build-VC90\newview\secondlife-bin.dir\Debug\BuildLog.htm”
    1>secondlife-bin - 5 个错误,12 个警告
    ========== 生成: 成功 0 个,失败 1 个,最新 22 个,跳过 0 个 ==========

I'm no C++ dev, so I'm not sure where to go next. I could build llmozlib 
from scratch, but I may not succeed and I think it takes really, really 
long.

Kakurady / Geneko Nemeth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/sldev/attachments/20090820/1dd1ac5f/attachment-0001.htm 


More information about the SLDev mailing list