
On 2/21/2011 7:39 PM, John Maddock wrote:
I had built boost version 1.40 (some time ago) myself with MSVC 2008 Express, a complete build. I now wanted to use the regex library; I left the default option of statically linking it in (no #define BOOST_REGEX_DYN_LINK) and also count on auto-linking (no BOOST_REGEX_NO_LIB).
Using regex_search, I keep getting linker errors:
<snip>
I've never seen those before, the missing symbols are std lib ones not Boost.Regex ones BTW. I would guess there's something unusual about how the library was built or how your app is being built. The quick solution would be to define BOOST_REGEX_NO_LIB and add all the libs/regex/src/*.cpp files directly to your project. Otherwise check that regex really was built with VC9 and not some other compiler by mistake, and check to see what defines and/or "odd" compiler options you may be using in your project.
Yes they are std errors but only pop up if I use the regex library (specifically, using regex_search is the offender). To the best of my knowledge I am not using any odd options either for my project or when I had compiled the boost library. The project is a fairly plain-vanilla console application with most options left to the default, only rather unsuspicious include directives and some optimization flags set, but the linker error also comes in debug mode. I am also using the boost threads library and others without any problems. Boost libraries were built with sort of the default bjam toolset=msvc-9.0 --build-type=complete --build-dir=BuildDir stage, so nothing odd there as well. hth, Thomas