
Hey there, I've just built Boost 1.49 with Visual Studio 11 (cl.exe v17) and that worked (bjam knows about the compiler version already). I do get a linking issue though when using regex in a debug/x64 (static boost, static run-time) build:
unresolved external symbol "private: class boost::basic_regex
The issue surfaces when calling boost::regex_match() with a boost::wregex expression.
Here are some debugging notes:
a.. This same application linked against Boost 1.48 using Visual Studio 2010 (cl.exe v16). This build did not have ICU.
b.. I have just built ICU and fed it too bjam's command line (-sICU_PATH=....), both 32- and 64-bit versions were detected, regex was built. Yet it made no difference to the final link step.
It seems the issue is not related to ICU... I am guessing regex speaks unicode using a specific Windows backend, but I am lost here. Could someone help debugging this please?
Not much as I don't have VS11. Things to check: * Are the libraries really 64 bit ones, or were 32 bit ones built by mistake? * Does a hello world app that uses boost::regex work? * Take a peek inside the libraries and see what symbols are defined - there should be both wchar_t and unsigned short versions in there. If all else fails and you just want to move on - define BOOST_REGEX_NO_LIB in your project, and build Boost.Regex as a dll or static lib project in your IDE - it's "just a bunch of source files" in libs/regex/src, nothing special about building it. HTH, John.