Boost logo

Boost Users :

Subject: Re: [Boost-users] regex: link issue on Visual Studio 11 (v17) x64
From: John Maddock (boost.regex_at_[hidden])
Date: 2012-03-02 04:49:30

> 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<wchar_t,........
> unresolved external symbol "public: bool __cdecl
> boost::re_detail::perl_matcher<wchar_t const *,
> unresolved external symbol "private: void __cdecl
> boost::re_detail::perl_matcher<wchar_t const *,
> 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
* 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.

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at