
I have upgraded by stlport libs to 4.6.2 (from 4.5) and boost libs to 1_32_0 (from 1_26_0). I am getting odd linking errors in the regex library. I am on vc6 sp5 and linking dynamically. If I have something like this in the code, it links fine boost::regex test("foo"); But if I use an std::string, I get link errors. For example, this code std::string testStr("bar"); boost::regex test(testStr); Produces link errors vc.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: unsigned int __fastcall boost::reg_expression<char,class boost::regex_traits<char>,class boost::detail::allocator_adapter<char,class boost::detail::simple_alloc>
::se t_expression(class _STL::basic_string<char,class _STL::char_traits<char>,class _STL::allocator<char> > const &,unsigned int)" (__imp_?set_expression@?$reg_expression@DV?$regex_traits@D@boost@@V?$all ocator_adapter@DVsimple_alloc@detail@boost@@@detail @2@@boost@@QAIIABV?$basic_string@DV?$char_traits@D@_STL@@V?$allocator@D@ 2@@_STL@@I@Z)
I dumped the exports for the library and there is mismatch in _STL and std namespaces. This is what I see in the new library 323 142 00026E00 ?set_expression@?$reg_expression@DV?$regex_traits@D@boost@@V?$allocator_ adapter@DVsimple_alloc@detail@boost@@@detail@2@@boost@@QAIIABV?$basic_st ring@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@I@Z The only difference seems to be _STL versus std. I know the std renaming is an stlport feature, but I am not sure where to go from here. If I look back into my old regex library, although the interfaces have changed, I see references to _STL, not std. Here is old library export (notice _STL) 61 3C 000010B0 ?Grep@RegEx@boost@@QAEIAAV?$vector@IV?$allocator@I@_STL@@@_STL@@ABV?$bas ic_string@DV?$char_traits@D@_STL@@V?$allocator@D@2@@4@I@Z Versus the new library export (notice std) 100 63 000010E0 ?Grep@RegEx@boost@@QAEIAAV?$vector@IV?$allocator@I@std@@@std@@ABV?$basic _string@DU?$char_traits@D@std@@V?$allocator@D@2@@4@K@Z Can someone please help me figure out how to get these consistent. Thanks! Aaron